mac上的logback将返回问号而不是单词 [英] logback on a mac returns question marks instead of words

查看:233
本文介绍了mac上的logback将返回问号而不是单词的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我只是开始使用logback来记录在glassfish3 AS上运行的Java项目,而且我注意到一些奇怪的事情。这段代码

  LOG.error(Вычисление{},calc);如果我在Windows上运行我的应用程序,

会生成正常的预期输出。但是,如果我在Mac上使用相同的配置,则会出现问号而不是文字,例如:

  15: 37:29.083错误rggcTotalNachController  -  ?????????? [id = 8871] ??? ???????????。 

我的logback配置是:

 < appender name =FILEclass =ch.qos.logback.core.FileAppender> 
< file> ../ logs / logback.log< / file>
<编码器>
< pattern>%d {HH:mm:ss.SSS}%-5级别记录器{35} - %msg%n< / pattern>
< /编码器>
< / appender>

有人可以告诉我,我做错了什么?


尝试定义编码器的字符集:

 < / p> 

appender name =FILEclass =ch.qos.logback.core.FileAppender>
< file> ../ logs / logback.log< / file>
<编码器>
< charset> utf-8< / charset>
< pattern>%d {HH:mm:ss.SSS}%-5级别记录器{35} - %msg%n< / pattern>
< /编码器>
< / appender>

很遗憾,这并没有在文档中描述过,但您始终可以在源代码中查找属性。 Specyfing < encoder> 实例化PatternLayoutEncoder。前往其父 LayoutWrappingEncoder ,您可以找到 setCharset()方法。如果指定了它,则可以在 http:// logback中看到.qos.ch / xref / ch / qos / logback / core / encoder / LayoutWrappingEncoder.html#120

I'm just start using logback for logging my Java project running on glassfish3 AS, and I'm noticing some strange thing. This string of code

LOG.error("Вычисление {} уже произведено.", calc);

generates normal expected output if I'm running my application on windows. But if I'm the same configuration on Mac, I'm having question marks instead of words, like so:

15:37:29.083 ERROR r.g.g.c.TotalNachController - ?????????? [id=8871] ??? ???????????.

my logback configuration is:

<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>

Could someone please tell me, what I'm doing wrong?

解决方案

Try to define charset for encoder:

<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>

Sadly it's not described in documentation, but you can always lookup properties in source code. Specyfing <encoder> instantize PatternLayoutEncoder. Going up to its parent LayoutWrappingEncoder you can find method setCharset(). When specified it is used, as you can see in http://logback.qos.ch/xref/ch/qos/logback/core/encoder/LayoutWrappingEncoder.html#120

这篇关于mac上的logback将返回问号而不是单词的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆