最近发生生产日志覆盖丢失了!
导致过去某个时间段的日志不可查,严重影响了生产问题的解决进度。
追查原因发现最近有个需求需要启动job,系统将存在多个线程,而系统使用的commons-logging还是最早的1.0版本,对多线程下的调用log4j没有支持,导致晚上00点后,归档昨天日志发生覆盖丢失日志。
找到原因后,解决很简单,从Apache上下载1.2版本替换后,一切又正常了。
log4j在不同系统上输出的日志编码是有可能不一样的,所以有时候我们会看到乱码,log4j支持自定义字符集,可以解决这个小问题。参数是:log4j.appender.“appender名称”.Encoding=UTF-8
xml格式,配置在appender内部 <param name="Enoding" value="UTF-8"/>