Log4j日志分类和过滤敏感字段

本文介绍了如何在项目上线时利用Log4j对日志进行分类,确保调用API的日志单独输出,并展示了如何过滤日志中的敏感字段,如password, PW, adminPass等。通过创建额外的logger并配置特定的Appender和Layout,以及使用StringMatchFilter实现日志过滤。Log4j的xml配置文件支持这种过滤方式,而properties格式则不支持。" 129341933,14866881,Linux进程与内存管理详解,"['Linux', '操作系统', '内存管理', '进程控制']
摘要由CSDN通过智能技术生成

项目上线时,需要对项目做安全检查,其中有两项是对输出日志进行分类和过滤掉日志中敏感字段。
项目使用Log4j日志系统,下面简单介绍下这两项要求的实现方式。

  1. 对日志进行分类,要求调用其他服务的API日志按照格式单独输出到一个文件。
    方式: 除根Logger外,再额外增加一个apiLogger,如下,
 <!-- api logger的设置-->
 <logger name="log4j.logger.apiLogger" additivity="false">
        <level value ="INFO"/>
        <appender-ref ref="apiConsoleAppender"/>
        <appender-ref ref="apiMsgOutGoingAppender"/>
 </logger>
 
 <!-- 根logger的设置-->
 <root>
        <level value ="INFO"/>
        <appender-ref ref="ConsoleAppender"/>
        <appender-ref ref="DailyRollingFileAppender"/>
 </root>

注: (1) additivity设为false,则root中的配置就失效了。即使用root配置的日志不会在apiLogger的文件中出现;
(2) 每种logger指定两个appender,分别是在debug console和Linux 服务器日志文件中显示。
根日志的ConsoleAppender和DailyRollingFileAppender的配置如下:

<appender name="ConsoleAppender" class="org.apache.log4j.ConsoleAppender">
    <!-- 设置日志输出的样式 -->
    <layout class="org.apache.log4j.PatternLayout">
        <!-- 设置日志输出的格式 -->
        <param name="ConversionPattern" value="**** [%p] [%d{yyyy/MM/dd HH:mm:ss:SSS}] ******************************%n[Thread] %t%n[Class] %C%n[Method] %M%n[Message] %m%n%n" />
    </layout>
</appender>
<appender name=
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值