查看“Springboot-日志配置”的源代码
←
Springboot-日志配置
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
==Spring Boot 日志记录== Spring Boot为所有的内部日志记录使用Commons Logging***?***,但开放底层日志实现,提供了Java Util Logging、Log4J2和Logback的默认配置,每种情况下,日志记录其都被预先配置为使用控制台输出,可选的文件输出也是可用的。如果使用了默认的“Stater”,spring-boot-stater->spring-boot-stater-logging,Logback用于记录日志。 ===日志格式=== Spring Boot 的默认日志(默认情况使用Logback)输出以下项目: *日期和时间:毫秒精度,易于排序。 *日志级别:ERROR、WARN、INFO、DEBUG、TRACE(Logback中没有FATAL级别,它映射到ERROR) *进程 ID。 *用于区分实际日志消息开始的分隔符。--- *线程名称:用方括号括起来(对于控制台输出,可能会截断)。 *记录器名称:这通常是源类名称(通常缩写)。 *日志消息。 可以使用 logging.pattern.console来定义 ===控制台输出=== 日志默认输出到控制台,级别为INFO ===文件输出=== 启用文件输出,需要设置 <code>logging.file.name</code> or <code>logging.file.path</code> <code>logging.file.name</code>: 日志写入特定的文件,可以是绝对路径也可以是相对路径 <code>logging.file.path</code>:日志写入特定目录的spring.log文件,可以是绝对路径也可以是相对路径 这两个参数不会同时生效,文件的级别要更高 logging.file.max-size:文件大小(默认单位为字节,可以使用KB、MB、GB),默认10M,超过之后就会分割并压缩存档 <code>logging.file.max-history</code>:最大保留天数,默认为7天,超过之后就会删除 <code>logging.file.total-size-cap</code>:日志存档总大小,超过后历史文件也会别删除 <code>logging.file.clean-history-on-start</code>: 应用程序启动时强制进行日志存档清理 ===日志级别=== 所有受支持的日志系统都可以在Spring环境中通过<code>ogging.level.<logger-name>=<level></code>设置日志级别,<code>logging.level.root</code>可以设置ROOT级别 <code>logging.level.root=warn</code> <code>logging.level.org.springframework.web=debug</code> <code>logging.level.org.hibernate=error</code> 也可以使用环境变量来设置,例如 <code>LOGGING_LEVEL_ORG_SPRINGFRAMEWORK_WEB=DEBUG</code> ===日志组=== 我们经常会用到将相关的记录器分组到一起,以便可以同时配置它们。所以Spring Boot允许在 Spring 中定义日志记录组 <code>logging.group.tomcat=org.apache.catalina, org.apache.coyote, org.apache.tomcat</code> <code>logging.level.tomcat=TRACE</code> Spring Boot提供了一下的预定义组: {| class="wikitable" !web !<code>org.springframework.core.codec</code>, <code>org.springframework.http</code>, <code>org.springframework.web</code>, <code>org.springframework.boot.actuate.endpoint.web</code>, <code>org.springframework.boot.web.servlet.ServletContextInitializerBeans</code> |- |sql |<code>org.springframework.jdbc.core</code>, <code>org.hibernate.SQL</code>, <code>org.jooq.tools.LoggerListener</code> |} ===自定义日志配置=== 可以引入对应的jar包来激活适当的日志系统,也可以添加配置文件来对日志系统进行配置 根据日志系统,将加载对应的配置文件 {| class="wikitable" !Logback !<code>logback-spring.xml</code>, <code>logback-spring.groovy</code>, <code>logback.xml</code>, or <code>logback.groovy</code> |- |Log4j2 |<code>log4j2-spring.xml</code> or <code>log4j2.xml</code> |- |JDK (Java Util Logging) |<code>logging.properties</code> |} 建议使用带有 <code>-spring</code>变体的配置文件,如果使用标准的配置文件,Spring可能无法完全控制日志的初始化。也不建议使用JUL(已知的类加载问题) 默认的Logback配置文件在 org/springframework/boot/logging/logback/base.xml 我们也可以直接在配置文件引入默认的配置然后再覆盖默认配置 <div> <blockquote> <!-- logback-spring,xml --><br /> <?xml version="1.0" encoding="UTF-8" ?><br /> <!-- 扩展不能与配置扫描一起使用 --><br /> <!-- configuration scan="true" scanPeriod="10 seconds" --><br /> <configuration><br /> <include resource="org/springframework/boot/logging/logback/base.xml" /><br /> <br /> <root level="DEBUG"><br /> <appender-ref ref="CONSOLE" /><br /> <appender-ref ref="FILE" /><br /> </root><br /> <br /> <!-- 测试环境+开发环境. 多个使用逗号隔开. --> <br /> <springProfile name="test,dev"><br /> <logger name="org.springframework.web" level="INFO"><br /> <appender-ref ref="FILE" /><br /> </logger><br /> <logger name="com.example" level="INFO" /><br /> </springProfile><br /> <br /> <!-- 生产环境. --> <br /> <springProfile name="prod"><br /> <logger name="org.springframework.web" level="ERROR"><br /> <appender-ref ref="FILE" /><br /> </logger><br /> <logger name="com.example" level="ERROR" /><br /> </springProfile><br /> <br /> </configuration><br /> </blockquote> </div> ===Spring Boot对logback的扩展=== *特定于配置文件的配置 springProfile 标记,允许根据活动的Spring配置文件选择包括或者排除部分配置,使用<code>name</code> 属性指定配置文件,可以包含名称或表达式 <blockquote> <springProfile name="staging"><br/> <!-- configuration to be enabled when the "staging" profile is active --><br/> </springProfile><br/> <br/> <springProfile name="dev | staging"><br/> <!-- configuration to be enabled when the "dev" or "staging" profiles are active --><br/> </springProfile><br/> <br/> <springProfile name="!production"><br/> <!-- configuration to be enabled when the "production" profile is not active --><br/> </springProfile><br/> <blockquote/> *环境属性 springProperty 标记,允许您公开 Spring 中的属性,供logback中使用。<code>source</code>指定要用的属性,<code>name</code>将此定义为占位符/变量,可以用<code>defaultValue</code>提供默认值 <blockquote> <springProperty name="level" source="logger.a.level" defaultValue="INFO"/><br/> <br/> <root level="${level}"><br/> <appender-ref ref="CONSOLE" /><br/> <appender-ref ref="FILE" /><br/> </root><br/> </blockquote> ===Log4J2===
返回至“
Springboot-日志配置
”。
导航菜单
个人工具
登录
名字空间
页面
讨论
变体
视图
阅读
查看源代码
查看历史
更多
搜索
导航
-==扬==-
-==帆==-
-==起==-
-==航==-
最近更改
随机页面
MediaWiki帮助
工具
链入页面
相关更改
特殊页面
页面信息