Spring Boot使用Log4j2的实例代码
2017-07-30 16:55
621 查看
前言
Spring Boot 默认使用Logback,来打印日志,这里还想说的SLFJ(Simple Logging Facade for Java),它们之间的关系,一张图,说明一切:
maven 配置
<!--use log4j2 property--> <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-log4j2</artifactId> </dependency> <!--flume log4j appender--> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-flume-ng</artifactId> <version>2.6</version> </dependency>
log4j2.xml 配置
Log4j2 提供非常丰富的Appender,比如CassandraAppender,AsyncAppender,我们这里配置了简单的Flume Appnder,Failover Appender.
<?xml version="1.0" encoding="UTF-8"?> <Configuration monitorInterval="60"> <Properties> <Property name="source">api-web</Property> <Property name="log-pattern">%d{yyyy-MM-dd HH:mm:ss.SSS} [%X{userId}] [%t] [%-5level] %c{1.}@%M%L - %m%n</Property> <!--get product dynamic property--> </Properties> <Appenders> <RollingFile name="RollingFile" fileName="logs/app.log" filePattern="logs/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log.gz"> <PatternLayout> <Pattern>${log-pattern}</Pattern> </PatternLayout> <Policies> <TimeBasedTriggeringPolicy /> <SizeBasedTriggeringPolicy size="250 MB"/> </Policies> </RollingFile> <Flume name="eventLogger" compress="false" type="avro" ignoreExceptions="false"> <Agent host="192.168.31.115" port="4444"/> <Agent host="127.0.0.1" port="4444"/> <PatternLayout> <pattern> <pattern>${log-pattern}</pattern> </pattern> </PatternLayout> </Flume> <Console name="Console-Appender" target="SYSTEM_OUT" ignoreExceptions="false"> <PatternLayout> <pattern>${log-pattern}</pattern> </PatternLayout> </Console> <!-- 主要Apeender失败的时候使用备用Appender--> <Failover name="Failover" primary="eventLogger"> <Failovers> <AppenderRef ref="RollingFile"/> </Failovers> </Failover> </Appenders> <Loggers> <!--在需要同时打印文件和发送至flume的时候使用--> <!--<Logger name="" level="info" additivity="false">--> <!--<AppenderRef ref="RollingFile"/>--> <!--</Logger>--> <Root level="info"> <AppenderRef ref="Console-Appender"/> <AppenderRef ref="Failover"/> </Root> </Loggers> </Configuration>
总结
如果遇到识别不了log4j2.properties/xml,可以在application.properties,中指定 logging.config=classpath:log4j2.properties/xml
参考
https://springframework.guru/introducing-log4j-enterprise-class-logging/
http://logging.apache.org/log4j/2.x/manual/appenders.html#RollingFileAppender
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家
您可能感兴趣的文章:
相关文章推荐
- [转载]使用反射技术动态创建类对象(实例代码)
- 使用PDFLib生成PDF文档,C代码实例--画图形
- PHP时间戳使用实例代码
- 不使用log4j.xml/log4j.properties在Java代码中生成Logger实例
- AspNetPager与Socut.Data使用实例代码
- PHP时间戳使用实例代码
- 使用DES加密解密代码实例
- php AJAX POST的使用实例代码
- 在看官方的例子时候由一个grid实例,在每一行之前有个加号,展开可以显示内容,在实际应用中还是非常有用的,照搬例子的代码,发现老是提示对象不存在,查阅资料后发现是没有加载插件,这里和大家分享下Ext.grid.RowExpander插件的使用,
- C#使用ADO.NET连接数据库简单代码实例
- C#使用MySQLDriverCS操作MySQL实例教程代码
- HessianCSharp 1.3.3版本前使用泛型以及接口interface继承问题解决方案!!(实例代码)
- sqlite api使用代码实例
- ACE Reactor框架使用实例-大量代码
- XStream使用方法总结附实例代码
- PHP类的使用 实例代码讲解
- 个人学习代码保存:例9.在存储过程中使用cast 类型转换的实例
- 比较详细的iisapp使用实例代码
- JMS(Jboss Messaging)的一点使用心得(九)实例代码
- PHP中MD5函数使用实例代码