log4j日志格式加入自定义字段信息方式
这篇文章主要介绍了log4j日志格式加入自定义字段信息方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
目录
log4j日志格式加入自定义字段信息
log4j2入库自定义字段类型
官方API文档中只提供了几个属性
设置isNumber=“true”
log4j日志格式加入自定义字段信息
在使用log4j日志的时候,有时需要在日志中加入自定义字段信息,例如在日志中加入登录用户的信息等,这时就可以使用org.apache.log4j.MDC来实现该功能:
1、在Action的方法中,直接使用
1 | MDC.put( "username" ,getUserInfo().getName()); //getUserInfo()获取登录用户信息 |
2、在log4j的配置文件中
1 | %d{yyyy/MM/dd HH:mm:ss.sss} [%X{username}] [%-5p] %c - %m%n |
日志文件结果:
2013/11/29 18:00:25.025 [test] [ERROR] com.test.TestAction //红色test即为加入的用户信息
注意:红色部分必须保持一致
log4j2入库自定义字段类型
项目中数据库日志表含有number类型的字段,发现按照默认的方式只能存入字符串类型。网上也找不到相关的帮助信息。
官方API文档中只提供了几个属性
设置isNumber=“true”
尝试设置了属性 isNumber="true"竟然成功了,代码如下:
1 2 3 4 5 6 7 8 9 10 | <! --写入数据库配置,在Logger中设置日志级别为error--> <JDBC name = "databaseAppender" tableName= "T_L_LOGINFO" > <ConnectionFactory class= "com.qxgc.utils.PoolManager" method= "getConnection" /> < Column name = "ID" literal= "SEQ_LOGINFO.NEXTVAL" /> < Column name = "SERVICETYPEID" pattern= "%X{sid}" isNumber= "true" /> < Column name = "RECTIME" isEventTimestamp= "true" /> < Column name = "USERID" pattern= "%X{userid}" /> < Column name = "ACCESSIP" pattern= "%X{ip}" /> < Column name = "CONTENT" pattern= "%m" /> </JDBC> |
测试登录接口后,看了下数据库,number类型的字段存进去了
以上为个人经验,希望能给大家一个参考
原文链接:https://blog.csdn.net/wyx713510713/article/details/17028173