mac上的logback将返回问号而不是单词 [英] logback on a mac returns question marks instead of words
问题描述
我只是开始使用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屋!