我刚刚开始使用logback来记录在glassfish3 AS上运行的
Java项目,我注意到了一些奇怪的事情.这段代码
LOG.error("Вычисление {} уже произведено.",calc);
如果我在Windows上运行我的应用程序,则生成正常的预期输出.但如果我在Mac上的配置相同,我会有问号而不是文字,如下所示:
15:37:29.083 ERROR r.g.g.c.TotalNachController - ?????????? [id=8871] ??? ???????????.
我的logback配置是:
<appender name="FILE" class="ch.qos.logback.core.FileAppender"> <file>../logs/logback.log</file> <encoder> <pattern>%d{HH:mm:ss.SSS} %-5level %logger{35} - %msg%n</pattern> </encoder> </appender>
有人可以告诉我,我做错了什么?
解决方法
尝试为编码器定义字符集:
<appender name="FILE" class="ch.qos.logback.core.FileAppender"> <file>../logs/logback.log</file> <encoder> <charset>utf-8</charset> <pattern>%d{HH:mm:ss.SSS} %-5level %logger{35} - %msg%n</pattern> </encoder> </appender>
遗憾的是,它没有在文档中描述,但您始终可以在源代码中查找属性. Specyfing< encoder>实例化PatternLayoutEncoder.转到其父LayoutWrappingEncoder,您可以找到方法setCharset().如果已指定,则使用它,如您在http://logback.qos.ch/xref/ch/qos/logback/core/encoder/LayoutWrappingEncoder.html#120中所见
原文地址:https://www.jb51.cc/java/127872.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。