Java编程基础:配置log4j2.xml同时输出日志到文件和控制台
转:
Java编程基础:配置log4j2.xml同时输出日志到文件和控制台
开发Java服务程序记日志是很关键的。一旦服务发布部署在云上,出了问题没有日志根本没法定位。
现在比较流行是用Spring Boot搭建微服务框架,搭配log4j2输出日志。输出到标准输出的日志可以通过kabana收集和查看,同时程序员也希望能有文件记录完整的日志信息。
下面给一份log4j2的xml配置样例,支持日志同时输出到标准输出和文件。
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="info">
<Appenders>
<Console name="Console" target="SYSTEM_OUT" follow="true">
<PatternLayout>
<pattern>%5p [%t] %d{yyyy-MM-dd HH:mm:ss} %m%n</pattern>
</PatternLayout>
</Console>
<RollingFile name="datasource" immediateFlush="true"
fileName="log/datasource/datasource.log" filePattern="log/datasource/datasource - %d{yyyy-MM-dd HH_mm_ss}.log.gz">
<PatternLayout>
<pattern>%5p [%t] %d{yyyy-MM-dd HH:mm:ss} %m%n</pattern>
</PatternLayout>
<Policies>
<SizeBasedTriggeringPolicy size="20MB" />
</Policies>
</RollingFile>
<RollingFile name="framework" immediateFlush="true"
fileName="log/framework/framework.log" filePattern="log/framework/framework - %d{yyyy-MM-dd HH_mm_ss}.log.gz">
<PatternLayout>
<pattern>%5p [%t] %d{yyyy-MM-dd HH:mm:ss} %m%n</pattern>
</PatternLayout>
<Policies>
<SizeBasedTriggeringPolicy size="20MB" />
</Policies>
</RollingFile>
</Appenders>
<Loggers>
<logger name="org.springframework" level="INFO" additivity="true">
<AppenderRef ref="framework" />
</logger>
<logger name="com.elon.dds" level="INFO" additivity="true">
<AppenderRef ref="datasource" />
</logger>
<Root level="info">
<AppenderRef ref="Console" />
</Root>
</Loggers>
</Configuration>
通过Appenders定义Spring框架和业务模块的日志输出到不同的文件。在Loggers中指定不同包的日志输出到不同文件,Root指定日志输出到标准输出。
注意Logger配置的additivity=“true”,表示日志信息除了在当前logger输出外还会在Root的Logger输出。这样就实现了同时在文件和控制台输出的目的
————————————————
版权声明:本文为CSDN博主「Elon.Yang」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/ylforever/article/details/80984613