springboot2.0log4j的基础使用

编程

springboot2.x 配置log4j

传统方式打印日志比较复杂, 每次打印需要定义全局变量

private static final Logger logger = LoggerFactory.getLogger(this.getClass())  

springboot2.x ,只需要加个注解~~~~

 

项目结构

影响文件: pom.xml , application.yml , logback.xml 

 

pom.xml 引入jar包

<dependency>

<groupId>org.projectlombok</groupId>

<artifactId>lombok</artifactId>

<version>1.16.10</version>

</dependency>

 

application.yml 配置

logging:

level:

root: ERROR

org.springframework: ERROR

org.mybatis: ERROR

#自己的工程包名录 : 日志级别

org.xxx.xxx.wx: DEBUG

org.xxx.xxx.db: DEBUG

org.xx.xx: INFO

file: /var/logs/litemall-wx-api/xxx.log

logback.xml 

<?xml version="1.0" encoding="UTF-8"?>

<configuration debug="false">

<!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->

<property name="LOG_HOME" value="/var/logs/xxxx/" />

<!-- 控制台输出 -->

<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">

<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">

<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->

<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>

</encoder>

</appender>

<!-- 按照每天生成日志文件 -->

<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">

<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">

<!--日志文件输出的文件名-->

<FileNamePattern>${LOG_HOME}/info.log.%d{yyyy-MM-dd}.log</FileNamePattern>

<!--日志文件保留天数-->

<MaxHistory>30</MaxHistory>

</rollingPolicy>

<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">

<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->

<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>

</encoder>

<!--日志文件最大的大小-->

<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">

<MaxFileSize>100MB</MaxFileSize>

</triggeringPolicy>

</appender>

<!--只保存error日志-->

<appender name="fileErrorLog" class="ch.qos.logback.core.rolling.RollingFileAppender">

<filter class="ch.qos.logback.classic.filter.ThresholdFilter">

<level>ERROR</level>

</filter>

<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">

<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->

<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>

</encoder>

<!--滚动输出策略-->

<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">

<!--日志文件输出的文件名-->

<FileNamePattern>${LOG_HOME}/error.log.%d{yyyy-MM-dd}.log</FileNamePattern>

<!--日志文件保留天数-->

<MaxHistory>30</MaxHistory>

</rollingPolicy>

<!--日志文件最大的大小-->

<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">

<MaxFileSize>100MB</MaxFileSize>

</triggeringPolicy>

</appender>

<root level="INFO">

<appender-ref ref="STDOUT" />

<appender-ref ref="FILE" />

<appender-ref ref="fileErrorLog" />

</root>

<!-- &lt;!&ndash; 开发环境日志级别为DEBUG/并且开发环境不写日志文件 &ndash;&gt;-->

<!-- <springProfile name="dev">-->

<!-- &lt;!&ndash; 日志输出级别 &ndash;&gt;-->

<!-- <root level="DEBUG">-->

<!-- <appender-ref ref="STDOUT" />-->

<!-- <appender-ref ref="FILE" />-->

<!-- <appender-ref ref="fileErrorLog" />-->

<!-- </root>-->

<!-- </springProfile>-->

<!-- &lt;!&ndash; 测试环境日志级别为INFO/并且记录日志文件 &ndash;&gt;-->

<!-- <springProfile name="test">-->

<!-- &lt;!&ndash; 日志输出级别 &ndash;&gt;-->

<!-- <root level="INFO">-->

<!-- <appender-ref ref="STDOUT" />-->

<!-- <appender-ref ref="FILE" />-->

<!-- <appender-ref ref="fileErrorLog" />-->

<!-- </root>-->

<!-- </springProfile>-->

</configuration>

 

生成规则: 

  • 每天生成一个文件
  • 所有日志自动打印打info.log (包含wran,error)
  • error.log 同步记录, 利于排查

java引用 

import lombok.extern.slf4j.Slf4j;

 

 

以上是 springboot2.0log4j的基础使用 的全部内容, 来源链接: utcz.com/z/510794.html

回到顶部