Springboot log4j2异步日志过滤器组合使用
2020-07-14 05:42
71 查看
log4j2总章
log4j2异步日志时,有时需要配置过滤器,本章介绍异步日志中过滤器的组合使用(全局过滤器以及Appender级别过滤器组合使用)
配置文件配置方式
<?xml version="1.0" encoding="UTF-8"?> <Configuration status="WARN"> <Appenders> <Console name="Console" target="SYSTEM_OUT" > <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/> <!-- 异步日志中Appender级别滤器因为是异步执行,可进行细致的过滤 --> <ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/> </Console> </Appenders> <Async name="Async-Console"> <AppenderRef ref="Console"/> </Async> <!-- 全局过滤器进行简单的全局过滤,自定义全局过滤器处理逻辑应尽可能简单 --> <ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/> <Loggers> <Root level="debug"> <AppenderRef ref="Async-Console"/> </Root> </Loggers> </Configuration>
代码进行配置
private Appender consoleAppender(@Qualifier("log4j-configuration") Configuration configuration) { final String name = "Console"; configuration.getRootLogger().removeAppender(name); //程序已经有一个Console,所以先清除, 然后再添加含有过滤器的Appender Layout<String> layout = PatternLayout.newBuilder() .withPattern(layoutPattern).build(); Filter filter = ThresholdFilter.createFilter(Level.INFO, Filter.Result.ACCEPT, Filter.Result.DENY); ConsoleAppender appender = ConsoleAppender.createAppender(layout, filter, ConsoleAppender.Target.SYSTEM_OUT, name, false, false, true); appender.start(); configuration.getRootLogger().addAppender(appender, null, null); return appender; }
@Bean("log4j-configuration") public Configuration configuration(LoggingServer loggingServer) { final LoggerContext ctx = (LoggerContext) LogManager.getContext(false); Configuration configuration = ctx.getConfiguration(); consoleAppender(configuration); return configuration; }
@Bean("global-filter") public Filter globalFilter(@Qualifier("log4j-configuration") Configuration configuration) { Filter global = ThresholdFilter.createFilter(Level.INFO, Filter.Result.ACCEPT, Filter.Result.DENY); configuration.addFilter(global); return global; }
相关文章推荐
- springboot+mybatis+zookeeper+dubbo的组合使用
- Spring boot中MyBatis xml和dao层接口组合使用出现的错误
- 初识spring boot maven管理--使用spring-boot-starter-parent
- 使用spring-boot快速开发spring应用
- spring boot环境下使用quartz设置定时任务
- 使用Spring+JDBC组合步骤如下:
- Spring Boot 项目构建 之 使用 Spring Boot 构建应用(Building an Application with Spring Boot)
- 使用Ratpack和Spring Boot打造高性能的JVM微服务应用
- spring boot 使用
- 使用Spring Boot快速构建应用
- 使用Spring Boot快速构建应用
- Spring Boot 在Gradle构建中使用Log4j日志
- 使用SpringBoot快速搭建服务器
- 使用spring boot快速构建spring框架的maven项目
- (4)Spring Boot使用别的json解析框架【从零开始学Spring Boot】
- (25)Spring Boot使用自定义的properties【从零开始学Spring Boot】
- spring-boot 之 使用Admin监控应用
- 使用Spring Boot快速构建应用
- Spring-boot使用Ehcache配置
- 使用 Spring Boot 快速构建应用服务