M. Akhil
M. Akhil

Reputation: 113

UTF-8 is not working Even after charater set is configured in slf4j logback.xml

<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
    <target>System.out</target>
    <encoder>
    <charset>UTF-8</charset>
        <pattern>%X{akkaTimestamp} %-5level %logger{35} - %msg%n</pattern>
    </encoder>
</appender>

<appender name="FILE"
    class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>log/akka.log</file>

    <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
        <fileNamePattern>log/tests.%i.log.zip</fileNamePattern>
        <minIndex>1</minIndex>
        <maxIndex>250</maxIndex>
    </rollingPolicy>

    <triggeringPolicy
        class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
        <maxFileSize>20MB</maxFileSize>
    </triggeringPolicy>
    <encoder>
        <charset>UTF-8</charset>
        <pattern>%-4relative [%thread] %-5level %logger{35} - %msg%n
        </pattern>
    </encoder>
</appender>

<logger name="akka" level="INFO" />

<root level="INFO">
    <appender-ref ref="CONSOLE" />
    <appender-ref ref="FILE" />
</root>

Arabic characters are not coming in log file. Characters are coming as

**************************************************message: {"text":"???? ??? ?? ???? ?? ????? ?????? ??."}***********************************

Upvotes: 1

Views: 6765

Answers (1)

M. Akhil
M. Akhil

Reputation: 113

It is working after adding

<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
    <charset>UTF-8</charset>
    <outputPatternAsHeader>true</outputPatternAsHeader> 
    <pattern>%-4relative [%thread] %-5level %logger{35} - %msg%n </pattern>    
</encoder>

Full File

<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
    <target>System.out</target>
    <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
    <charset>UTF-8</charset>
        <outputPatternAsHeader>true</outputPatternAsHeader> 
        <pattern>%d{yyyy-MM-dd HH:mm:ss} %-5level %logger{35} - %msg%n</pattern>
    </encoder>
</appender>

<appender name="FILE"
    class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>log/akka.log</file>

    <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
        <fileNamePattern>log/tests.%i.log.zip</fileNamePattern>
        <minIndex>1</minIndex>
        <maxIndex>250</maxIndex>
    </rollingPolicy>

    <triggeringPolicy
        class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
        <maxFileSize>20MB</maxFileSize>
    </triggeringPolicy>
    <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
        <charset>UTF-8</charset>
        <outputPatternAsHeader>true</outputPatternAsHeader>
        <pattern>%d{yyyy-MM-dd HH:mm:ss} %-5level %logger{35} - %msg%n
        </pattern>
    </encoder>
</appender>

<logger name="akka" level="INFO" />

<root level="INFO">
    <appender-ref ref="CONSOLE" />
    <appender-ref ref="FILE" />
</root>

Upvotes: 3

Related Questions