zeo*_*dtr 267 logging spring-boot
这是一个非常简单的问题,但我找不到相关信息.
(也许我对Java框架的了解非常严重)
如何使用application.properties设置日志记录级别?
并记录文件位置等?
M. *_*num 313
更新:从Spring Boot v1.2.0.RELEASE开始,设置application.properties或application.yml应用.请参阅参考指南的" 日志级别"部分.
logging.level.org.springframework.web: DEBUG
logging.level.org.hibernate: ERROR
Run Code Online (Sandbox Code Playgroud)
对于早期版本的Spring Boot,你不能.您只需为日志框架(log4j,logback)使用正常配置即可.将适当的配置文件(log4j.xml或logback.xml)添加到src/main/resources目录并根据自己的喜好进行配置.
您可以通过指定--debug从命令行启动应用程序时启用调试日志记录.
Spring Boot为logback提供了一个很好的起点,可以配置一些默认值,着色等base.xml文件,您可以将其简单地包含在logback.xml文件中.(这也是Spring Boot中默认的logback.xml的推荐.
<include resource="org/springframework/boot/logging/logback/base.xml"/>
Run Code Online (Sandbox Code Playgroud)
Ric*_*ard 101
您可以使用application.properties执行此操作.
logging.level.=ERROR- >设置根日志记录级别错误
...
logging.level.=DEBUG- >设置根日志记录级别为DEBUG
logging.file=${java.io.tmpdir}/myapp.log- >设置绝对日志文件路径TMPDIR/myapp.log
关于使用配置文件会记录application.properties的理智默认设置: application.properties:
spring.application.name=<your app name here>
logging.level.=ERROR
logging.file=${java.io.tmpdir}/${spring.application.name}.log
Run Code Online (Sandbox Code Playgroud)
application-dev.properties:
logging.level.=DEBUG
logging.file=
Run Code Online (Sandbox Code Playgroud)
当您在自己喜欢的IDE内部开发时,只需-Dspring.profiles.active=dev在应用程序的运行/调试配置中添加一个VM参数即可.
这将使您在开发期间仅记录生产和调试日志记录时出错,而无需将输出写入日志文件.这将改善开发期间的性能(并节省SSD驱动器的运行时间;)).
The*_*ger 55
设置根日志记录级别的正确方法是使用该属性logging.level.root.请参阅自最初询问此问题以来已更新的文档.
例:
logging.level.root=WARN
Run Code Online (Sandbox Code Playgroud)
Pan*_*kos 25
根据文档,您可以根据 java 包拥有不同的日志记录级别。
logging.level.com.mypackage.myproject=WARN
logging.level.org.springframework=DEBUG
logging.level.root=INFO
Run Code Online (Sandbox Code Playgroud)
这意味着
com.mypackage.myproject WARN日志记录级别org.springframework DEBUG日志记录级别将被应用您还可以将不同的 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
Run Code Online (Sandbox Code Playgroud)
这意味着包
都会应用日志记录级别WARN
sha*_*999 15
假设您的应用程序包名为com.company.myproject.然后,您可以在application.properties文件中为项目内部的类设置日志记录级别
logging.level.com.company.myproject = DEBUG
logging.level.org.springframework.web = DEBUG并将logging.level.org.hibernate = DEBUG仅为Spring框架Web和Hibernate的类设置日志记录级别.
用于设置日志文件位置的使用
logging.file = /home/ubuntu/myproject.log
Har*_*tel 11
如果您使用的是Spring Boot,则可以直接在application.properties文件中添加以下属性,以设置日志记录级别,自定义日志记录模式以及将日志存储在外部文件中.
这些是不同的日志记录级别及其从最小值<<最大值的顺序.
OFF << FATAL << ERROR << WARN << 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"
Run Code Online (Sandbox Code Playgroud)
请通过此链接更加生动地自定义您的日志.
https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-logging.html
小智 10
logging:
level:
root: INFO
com.mycompany.myapp: DEBUG
Run Code Online (Sandbox Code Playgroud)
如果您想使用不同的日志框架,例如log4j,我发现最简单的方法是禁用spring boots自己的日志记录并实现自己的日志记录.这样我就可以在一个文件中配置每个loglevel,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>
Run Code Online (Sandbox Code Playgroud)
您可能已经拥有第一个依赖项,只需要另外两个.请注意,此示例仅涵盖log4j.
这就是全部,现在你已经准备好在log4j配置文件中配置启动日志!
小智 6
使用 Springboot 2,您可以使用环境变量设置根日志记录级别,如下所示:
logging.level.root=DEBUG
Run Code Online (Sandbox Code Playgroud)
或者您可以为这样的包设置特定的日志记录:
logging.level.my.package.name=TRACE
Run Code Online (Sandbox Code Playgroud)
现有的答案很棒。我只想与您分享一个新的 Spring Boot 功能,允许对日志进行分组并在整个组上设置日志记录级别。
文档中的示例:
logging.group.tomcat=org.apache.catalina, org.apache.coyote, org.apache.tomcat
Run Code Online (Sandbox Code Playgroud)
logging.level.tomcat=TRACE
Run Code Online (Sandbox Code Playgroud)
这是一个很好的功能,可以带来更多的灵活性。
您可以尝试将日志级别设置为 DEBUG 它会在启动应用程序时显示所有内容
logging.level.root=DEBUG
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
369307 次 |
| 最近记录: |