Java编程基础:配置log4j2.xml同时输出日志到文件和控制台
开发Java服务端程序记日志是关键的。服务部署在云端,出了问题没有日志根本没法定位。现在比较流行是用Spring Boot搭建微服务框架,配置log4j2输出日志。输出到标准输出的日志可以通过kabana收集和查看,同时程序员也希望能有文件记录完整的日志信息。下面给一份log4j2的xml配置样例,支持日志同时输出到标准输出和文件。<?xml vers
·
开发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输出。这样就实现了同时在文件和控制台输出的目的
更多推荐
已为社区贡献3条内容
所有评论(0)