Log4j乱码

摘要:
123[c-shar]视图plaincopilog4j。附加程序。A1=组织。阿帕奇。log4j。RollingFileAppender日志4j。附加程序。A1.文件=全部。log添加行:

解决方法:

如果是log4j.properties为配置文件,比如:

1
2
3
[c-sharp] view plaincopy
log4j.appender.A1=org.apache.log4j.RollingFileAppender  
log4j.appender.A1.File=all.log

加入一行:

1
2
3
4
[c-sharp] view plaincopy
log4j.appender.A1=org.apache.log4j.RollingFileAppender  
log4j.appender.A1.Encoding=UTF-8  
log4j.appender.A1.File=all.log

如果是log4j.xml为配置文件,比如:

1
2
3
4
5
[c-sharp] view plaincopy
<appender name="A1" class="org.apache.log4j.RollingFileAppender">  
        <param name="File" value="all.log" />  
        ......  
</appender>

加入一行:

1
2
3
4
5
6
[c-sharp] view plaincopy
<appender name="A1" class="org.apache.log4j.RollingFileAppender">  
        <param name="Encoding" value="UTF-8" />  
        <param name="File" value="all.log" />  
        ......  
</appender>

原理:

log4j通过QuietWriter写日志,QuietWriter extends FilterWriter,FilterWriter extends Writer,而Writer写入的是字符流,对字符集比较敏感。英文系统一般默认latin-1字符集,只能处理半角,通过encoding指定字符集后,能够正确输出指定字符集的字符流。

字符集指定后,WriterAppender的setEncoding通过org.apache.log4j.config.PropertySetter.setProperties(Object obj, Properties properties, String prefix)设置字符集。

注意A1.代表日志类型,是INFO,CONSOLE, file,infoLog等其中的一种

解决方法:设置编码格式为:UTF-8,如红色字体。

#定义DEBUG优先级,R为日志输出目的的

log4j.rootLogger=debug,file
#设置日志输出类型,为文件类型
#log4j.appender.file=org.apache.log4j.FileAppender
#设置日志输出类型,每天一个文件
log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
#在每天产生的文件后面追加
log4j.appender.file.DatePattern = '.'yyyyMMdd
#设置日志文件名 /home/weblogic/oneboss/0068_stat.log
log4j.appender.file.file=/home/weblogic/oneboss/0068_stat.log
#每次在文件尾写入新的日志信息  
log4j.appender.file.Append=true
#日志输出信息格式类型
log4j.appender.file.layout=org.apache.log4j.PatternLayout 
#日志输出信息格式为 换行、日期、优先级、[类名]、日志信息、换行   ==%n%d[%c]-%m%n  %m%n
log4j.appender.file.layout.ConversionPattern=%m%n
#设置输出日志文件编码(可以控制乱码情况)
log4j.appender.file.encoding=UTF-8

免责声明:文章转载自《Log4j乱码》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇飞机的侧向气动力和力矩docker-java Docker的java API下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

sublime text3 搭建c++/c环境

sublime搭建的c++/c使用很方便,实用性很强,自己阅览了无数的博客,csdn,博客园的都看了,最后还是自己摸索着搭建成功了,如果觉得还不错请给个评论谢谢。(提前声明本人专利不允许转载!!!!) 转载备注地址:https://www.cnblogs.com/luhongkai/p/9812851.html 一、配置环境 大部分都是下载安装MinGW文...

linux下解压.zip压缩包出现乱码的问题解决

在windows下压缩打包的zip文件用的是gb2312的编码格式,在linux下解压缩后出现乱码的情况,linux下默认是utf-8的。 下载7z解压软件yum install p7zip convmv 解压:LANG=C 7za x your-zip-file.zip 转码:convmv -f GBK -t utf8 --notest -r ....

C#使用log4net记录日志

一、Nuget安装log4net --> Install-Package log4net 二、在AssemblyInfo.cs文件中添加log4net.dll的参数。 [assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", ConfigFileExtension...

Linux 内核编译步骤及配置详解

linux 系统体系结构: linux kernel体系结构:arm有7种工作模式,x86也实现了4个不同级别RING0-RING3,RING0级别最高,这样linux用户代码运行在RING3下,内核运行在RING0,这样系统本身就得到了充分的保护 用户空间(用户模式)转到内核空间(系统模式)方法:·系统调用·硬件中断 linux kernel 体系结构...

遇到Visual Studio "当前不会命中断点.还没有为该文档加载任何符号"的情况

一.问题及原因 有这样一种调用逻辑:A.exe调用B.dll.现在想要在B的源代码中打断点,从A发起进行调试,却给出了"当前不会命中断点.还没有为该文档加载任何符号"的提示.感觉十分奇怪,各种重新生成,重启VS都没啥用,最后不得以网上搜了一番,找到了问题的根源. 原来我把旧的B.dll文件拷到了A.exe所在的目录下,导致A.exe调试时直接去调用旧的B....

第144天:PS切图方法总结

一、切图方法分类     PhotoShop从CS版本演变到现在的CC版本,切图功能发生了比较大的变化,我们可以把PhotoShop CS版本时的切图功能称为传统切图,而从PhotoShop CC版本开始PS提出了精准切图。所谓传统切图就是切图人员基本上都是自己分割图层切图,传统切图又分为全手工切图和参考线切图;现在CC版本提出的精准切图,切图人员可以依赖计...