这个问题很简单,但我找不到资料。 (可能我对Java框架的知识严重缺乏)
如何使用application.properties设置日志级别? 日志文件的位置,等等?
这个问题很简单,但我找不到资料。 (可能我对Java框架的知识严重缺乏)
如何使用application.properties设置日志级别? 日志文件的位置,等等?
当前回答
现有的答案很好。我只是想与您分享一个新的spring引导功能,允许对日志进行分组并在整个组上设置日志级别。
来自文件的例子:
创建日志记录组
logging.group.tomcat=org.apache.catalina, org.apache.coyote, org.apache.tomcat
为组设置日志级别
logging.level.tomcat=TRACE
这是一个很好的功能,它带来了更多的灵活性。
其他回答
如果您使用Spring Boot,那么您可以直接在应用程序中添加以下属性。属性文件设置日志级别, 自定义日志记录模式并将日志存储在外部文件中。
这些是不同的日志级别及其从最小值<<最大值的顺序。
关闭<<致命<<错误<<警告<< info << debug << trace << all
# To set logs level as per your need.
logging.level.org.springframework = debug
logging.level.tech.hardik = trace
# To store logs to external file
# Here use strictly forward "/" slash for both Windows, Linux or any other os, otherwise, its won't work.
logging.file=D:/spring_app_log_file.log
# To customize logging pattern.
logging.pattern.file= "%d{yyyy-MM-dd HH:mm:ss} - %msg%n"
请通过这个链接来更生动地定制您的日志。
https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-logging.html
在我当前的配置中,我在应用程序中定义了它。Yaml是这样的:
logging:
level:
ROOT: TRACE
我正在使用spring-boot:2.2.0.RELEASE。您可以像这样定义任何应该具有TRACE级别的包。
假设应用程序的包名为com.company.myproject。然后,您可以在应用程序中为项目中的类设置日志级别,如下所示。属性文件
loging.level.com.company.myproject = DEBUG
loging.level.org.springframework.web = DEBUG和loging.level.org.hibernate = DEBUG将仅为Spring框架web和Hibernate的类设置日志级别。
用于设置日志文件位置使用
伐木。文件= /home/ubuntu/myproject
根据文档,您可以根据java包拥有不同的日志级别。
logging.level.com.mypackage.myproject=WARN
logging.level.org.springframework=DEBUG
logging.level.root=INFO
这就意味着
对于您的自定义包com.mypackage.myproject将应用WARN日志级别 对于spring框架包org。将应用springframework DEBUG日志级别 对于每个其他包,将应用INFO日志级别
您还可以将不同的java包分组在一起,并指示系统在一行中对该组的所有包使用相同的日志级别。
在前面的例子中你可以这样做
logging.level.root=INFO
logging.level.org.springframework=DEBUG
logging.group.myCustomGroup = com.mypackage.myproject, com.otherpackage.otherproject, com.newpackage.newproject
logging.level.myCustomGroup=WARN
这就意味着包裹
com.mypackage.myproject com.otherpackage.otherproject com.newpackage.newproject
是否所有日志级别都应用了WARN
如果您想使用不同的日志框架(例如log4j),我发现最简单的方法是禁用spring引导自己的日志记录并实现自己的日志记录。这样我就可以在一个文件log4j.xml(在我的例子中)中配置每个日志级别。
要实现这一点,你只需要将这些行添加到你的pom.xml:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j</artifactId>
</dependency>
您可能已经有了第一个依赖项,只需要另外两个依赖项。请注意,这个例子只包含log4j。 以上就是全部内容,现在您就可以在log4j配置文件中为引导配置日志了!