[英]How to set logging.path for spring-boot apps?
spring-boot
提供了幾個可以在application.properties
中application.properties
logging.*
設置,例如:
logging.level.=DEBUG
logging.file=myfile.log
logging.path=d:/logs/
問題:生成了myfile.log
,但在類路徑中! 為什么 spring 不考慮我的絕對路徑?
默認情況下,Spring Boot 只會登錄到控制台,不會寫入日志文件。 如果您想在控制台輸出之外寫入日志文件,您需要設置 logging.file 或 logging.path 屬性(例如在您的 application.properties 中)。
然后描述logging.file
和logging.path
屬性是如何工作的。 你應該只設置一個。
如果設置了logging.file
,它將寫入該特定文件。 該文件指出
名稱可以是確切位置或相對於當前目錄。
因此,您可能正在寫入當前目錄,該目錄恰好與您的類路徑相同。
如果你設置了logging.path
,Spring Boot
將
spring.log
寫入指定目錄。 名稱可以是確切位置或相對於當前目錄。
檢查您的當前目錄是否不是您的類路徑,如果您不希望它們混合,並相應地調整logging.file
和logging.path
。
我不知道這是否仍然需要,但是您可以根據您的示例使用以下代碼設置絕對路徑
logging.path=D:\logs\logfile.txt
您可以像這樣更改文件名和路徑。 如果該文件夾不存在,則會創建它。 在 Windows 上,您必須使用 \\ 作為分隔符,而在 Linux 和 Mac 上,您需要使用 / 作為分隔符。
記住:您的屬性中不能同時包含 logging.file 和 logging.path。 它是 .file 或 .path ...在你的情況下是路徑。
在發布前測試了 2 分鍾
對於 Spring Boot v2.3.4 及更高版本,肯定是:它不是logging.file=.... ,它是 logging.file。 姓名=....
您也可以在app.properties
上進行此配置。 這就是它在我的一個項目中的工作方式。
logging.path=../logs
logging.file=${logging.path}/fileName.log
因此,您可以同時擁有這兩個屬性,並且一個引用另一個。
對於 spring-boot 2.3.x 及以上版本:
logging:
level:
root: INFO
my.app: INFO
file:
path: './logs/${spring.application.name}'
name: ${logging.file.path}/my-app.log
logging.file.name
:日志文件名(例如, myapp.log
)。 名稱可以是確切位置或相對於當前目錄。
logging.file.path
:日志文件的位置。 例如, /var/log
。
參考: Spring-Boot 核心屬性
我在application.properties
設置了logging.file=C:/usr/local/tomcat/logs/hib.log
並在類中設置如下
private static final Logger logger = LogManager.getLogger(ChargeMasterController.class);
logger.info("Total time taken for is ---------------------------" + time + " ms");
日志在 logging.file 提到的路徑中打印得很好。
現在我想在 2 個不同的文件中為 2 個不同的類(在同一個包中)打印我的日志,我如何在 application.properties 中設置 2 logging.file
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.