Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

logback on a mac returns question marks instead of words

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?

like image 674
SimY4 Avatar asked Nov 02 '12 12:11

SimY4


1 Answers

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

like image 127
Kangur Avatar answered Oct 19 '22 15:10

Kangur