java – mac上的logback返回问号而不是单词

我刚刚开始使用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中所见

相关文章

最近看了一下学习资料,感觉进制转换其实还是挺有意思的,尤...
/*HashSet 基本操作 * --set:元素是无序的,存入和取出顺序不...
/*list 基本操作 * * List a=new List(); * 增 * a.add(inde...
/* * 内部类 * */ 1 class OutClass{ 2 //定义外部类的成员变...
集合的操作Iterator、Collection、Set和HashSet关系Iterator...
接口中常量的修饰关键字:public,static,final(常量)函数...