为了防止log4j产生的日志出现乱码,我们可以指定其编码方式,如使用UTF-8。
在log4j.priority文件中,增加一行配置即可解决:
log4j.appender.YourAppender.Encoding=UTF-8
但是有的时候需要动态设置appender
RollingFileAppender = new RollingFileAppender(layout, logfile, true);
RollingFileAppender.setEncoding("UTF-8");
但是这样设置并不能生效,生成的日志文件的编码方式并没有被指定为UTF-8,必须在后面加上一行
RollingFileAppender.activateOptions();
表示适用当前配置才能生效,否则还会适用log4j默认的配置。