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?
You need to check if the used text editor is supporting your character set. Also the used terminal may affect the displayed characters also.
I suggest using
more
orless
UNIX commands fromTerminal
application, that should support your charset, to validate if the characters are printed ok.Try to define charset for encoder:
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