Spring Boot : logback和log4j2配置(五)
2017-08-24 01:12
477 查看
目录
目录官方文档
logback日志
log4j2日志
log4j2xml 配置方法
log4j2yml配置方法
官方文档
官网文档:Logginglogback日志
logback是springboot默认使用的日志,默认级别INFO。比log4j效率更高,且实现了slf4j接口。实际日志都是在运行时binding的具体实现类。默认情况下spring-boot-starter已经包含了logback,所以我们启动项目时没有配置日志也会正常打印日志。默认配置在org.springframework.boot.logging.logback.base.xml ,仅是简单更改的话不需要用到下边的配置文件,在application.properties或者application.yml更改相关配置就可以了。比如logging.file设置文件logging.path设置目录。
如果我们需要更改更多详细配置:可以在src/main/resources/下添加logback.xml或者logback-spring.xml(官方建议)
<?xml version="1.0" encoding="UTF-8"?> <configuration> <contextName>logback</contextName> <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" /> <conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" /> <conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" /> <property name="log.path" value="/milo/test.log" /> <!--输出到控制台--> <appender name="console" class="ch.qos.logback.core.ConsoleAppender"> <!-- <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <level>ERROR</level> </filter>--> <encoder> <pattern>%clr(%d{HH:mm:ss.SSS}){red} %clr(%contextName){green} %clr([%thread]) %clr(%-5level){blue} %clr(%logger{36}){magenta} - %clr(%msg%n)</pattern> </encoder> </appender> <!--输出到文件--> <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${log.path}</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>logback.%d{yyyy-MM-dd}.log</fileNamePattern> </rollingPolicy> <encoder> <pattern>%d{HH:mm:ss.SSS} %contextName [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> <root level="info"> <appender-ref ref="console" /> <appender-ref ref="file" /> </root> <!-- logback为java中的包 --> <!--<logger name="com.dudu.controller"/>--> <!--logback.LogbackDemo:类的全路径 --> <!--<logger name="com.dudu.controller.LearnController" level="WARN" additivity="true">--> <!--<appender-ref ref="console"/>--> <!--</logger>--> <!-- 测试环境+开发环境. 多个使用逗号隔开. --> <springProfile name="dev"> <logger name="cn.milo.controllor" level="DUBUG" /> </springProfile> <!-- 生产环境. --> <springProfile name="prod"> <logger name="cn.milo.controllor" level="INFO" /> </springProfile> </configuration>
具体配置大家自行查阅吧,大同小异。我的这个配置也是网上找的。
类中声明变量:
Logger logger = LoggerFactory.getLogger(SampleController.class);
logback详细介绍 : http://blog.csdn.net/gebitan505/article/details/70142155?locationNum=1&fps=1
log4j2日志
更改pom.xml<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> <!-- 添加log4j包 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j2</artifactId> </dependency>
否则会出现slf4j绑定两个实现类的情况:
log4j2.xml 配置方法
在application.properties或者application.yml增加配置,我用的yml(如果这里是log4j2.xml或者log4j2-spring.xml可以不加下边这个配置。springboot可以识别)logging: config: classpath:log4j2-demo.xml #如果名字非og4j2.xml或者log4j2-spring.xml需加上这个配置。
src/main/resources/增加log4j2.xml
<?xml version="1.0" encoding="utf-8"?> <configuration> <properties> <!-- 文件输出格式 --> <property name="PATTERN">%d{yyyy-MM-dd HH:mm:ss.SSS} |-%-5level [%thread] %c [%L] -| %msg%n</property> </properties> <appenders> <Console name="CONSOLE" target="system_out"> <PatternLayout pattern="${PATTERN}" /> </Console> </appenders> <loggers> <logger name="cn.milo.controllor" level="debug" /> <root level="info"> <appenderref ref="CONSOLE" /> </root> </loggers> </configuration>
log4j2.yml配置方法
不需要在application.properties或者application.yml增加配置,但要增加一个依赖包pom.xml
<!-- 加上这个才能辨认到log4j2.yml文件 --> <dependency> <groupId>com.fasterxml.jackson.dataformat</groupId> <artifactId>jackson-dataformat-yaml</artifactId> </dependency>
log4j2.yml
Configuration: status: warn Properties: # 定义全局变量 Property: # 缺省配置(用于开发环境)。其他环境需要在VM参数中指定,如下: #测试:-Dlog.level.console=warn -Dlog.level.xjj=trace #生产:-Dlog.level.console=warn -Dlog.level.xjj=info - name: log.level.console value: trace - name: log.level.xjj value: trace - name: log.path value: /opt/logs - name: project.name value: my-spring-boot Appenders: Console: #输出到控制台 name: CONSOLE target: SYSTEM_OUT ThresholdFilter: level: ${sys:log.level.console} # “sys:”表示:如果VM参数中没指定这个变量值,则使用本文件中定义的缺省全局变量值 onMatch: ACCEPT onMismatch: DENY PatternLayout: pattern: "%d{yyyy-MM-dd HH:mm:ss,SSS}:%4p %t (%F:%L) - %m%n" RollingFile: # 输出到文件,超过128MB归档 - name: ROLLING_FILE ignoreExceptions: false fileName: /milo/test2.log filePattern: "${log.path}/$${date:yyyy-MM}/${project.name}-%d{yyyy-MM-dd}-%i.log.gz" PatternLayout: pattern: "%d{yyyy-MM-dd HH:mm:ss,SSS}:%4p %t (%F:%L) - %m%n" Policies: SizeBasedTriggeringPolicy: size: "128 MB" DefaultRolloverStrategy: max: 1000 Loggers: Root: level: info AppenderRef: - ref: CONSOLE - ref: ROLLING_FILE Logger: # 为com.xjj包配置特殊的Log级别,方便调试 - name: com.xjj additivity: false level: ${sys:log.level.xjj} AppenderRef: - ref: CONSOLE - ref: ROLLING_FILE
相关文章推荐
- Spring Boot基础教程——日志配置-logback和log4j2
- Spring Boot基础教程5-日志配置-logback和log4j2
- (六)Spring Boot之日志配置-logback和log4j2
- (六)Spring Boot之日志配置-logback和log4j2
- Spring-boot--打印sql参数 log4jdbc与logback配置
- spring boot 日志配置 logback-spring.xml
- spring boot 日志介绍 以及 logback配置示例
- SpringBoot之LogBack常用配置
- spring boot 配置logback日志,按时间和大小分割
- spring boot 中logback多环境配置
- spring boot日志配置 Logback、yml
- spring boot logback配置
- (转)Spring boot——logback.xml 配置详解(四)<filter>
- SpringBoot基础教程2-1-5 日志规范-logback配置详解
- 关于springboot的默认日志配置文件logback.xml
- springboot 中 log4j2的使用及配置讲解
- 在spring boot中的log4j2编程式配置(Programmatic Configuration)注意事项
- Spring Boot学习之旅:(七)logback配置日志
- Spring Boot实战之配置使用Logback进行日志记录
- spring boot 日志介绍 以及 logback配置示例