現在、既存のWebアプリ改修を行っています。
そのアプリの中にlog4jを使用したログ出力機能があるのですが、ローカル環境と本番環境での挙動に差があり原因を調べておりますが「決定的な原因はこれ!」というものがわからず、本番環境のプログラムを何度も交換しながらテストするわけにもいかない為困っております。
また、私はlog4jを使用したこともなく、詳しい知識もない状態で「調べておいて」と言われてしまっている状況です。
質問
log4jを使用して文字化け「??????」が発生する際、考えられる原因箇所・調査方法
事象
ローカル環境では文字化けなく、日本語がログにちゃんと出力される
本番環境では日本語に文字化けが発生し、「?????????」のように表示されてしまう
出力されていたLOGファイルの文字コードは「SJIS」となっていました。
関係がありそうなところで、log4j.xmlの内容を記します。
【log4j.xml】
xml
1<?xml version="1.0" encoding="UTF-8" ?> 2<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> 3<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" > 4 <appender name="C" class="org.apache.log4j.ConsoleAppender"> 5 <param name="threshold" value="debug"/> 6 <param name="Target" value="System.out" /> 7 <layout class="org.apache.log4j.PatternLayout"> 8 <param name="ConversionPattern" value="%-5p\t%d\t[%t]\t%m%n" /> 9 </layout> 10 </appender> 11 <appender name="update" class="org.apache.log4j.DailyRollingFileAppender"> 12 <param name="threshold" value="debug"/> 13 <param name="File" value="${catalina.home}/logs/trans/update.log" /> 14 <param name="Append" value="true" /> 15 <layout class="jp.co.xxx.trans.log.UserKeyAndPatternLayout"> 16 <param name="ConversionPattern" value="%-5p\t%d\t[%t]\t%m%n" /> 17 </layout> 18 <filter class="jp.co.xxx.trans.log.RegexMatchFilter" > 19 <param name="regex" value="^(insert|update|delete).*" /> 20 </filter> 21 </appender> 22 <appender name="trace" class="org.apache.log4j.DailyRollingFileAppender"> 23 <param name="threshold" value="debug"/> 24 <param name="File" value="${catalina.home}/logs/trans/trace.log" /> 25 <param name="Append" value="true" /> 26 <layout class="org.apache.log4j.PatternLayout"> 27 <param name="ConversionPattern" value="%-5p\t%d\t[%t]\t%m%n" /> 28 </layout> 29 </appender> 30 <appender name="request" class="org.apache.log4j.DailyRollingFileAppender"> 31 <param name="threshold" value="debug"/> 32 <param name="File" value="${catalina.home}/logs/trans/request.log" /> 33 <param name="Append" value="true" /> 34 <layout class="org.apache.log4j.PatternLayout"> 35 <param name="ConversionPattern" value="%-5p\t%d\t[%t]\t%m%n" /> 36 </layout> 37 </appender> 38 <appender name="system" class="org.apache.log4j.DailyRollingFileAppender"> 39 <param name="threshold" value="info"/> 40 <param name="File" value="${catalina.home}/logs/trans/system.log" /> 41 <param name="Append" value="true" /> 42 <layout class="org.apache.log4j.PatternLayout"> 43 <param name="ConversionPattern" value="%-5p\t%d\t[%t]\t%m%n" /> 44 </layout> 45 </appender> 46 <appender name="warnAppender" class="org.apache.log4j.DailyRollingFileAppender"> 47 <param name="threshold" value="warn"/> 48 <param name="File" value="${catalina.home}/logs/trans/warn.log" /> 49 <param name="Append" value="true" /> 50 <layout class="org.apache.log4j.PatternLayout"> 51 <param name="ConversionPattern" value="%-5p\t%d\t[%t]\t%m%n" /> 52 </layout> 53 </appender> 54 <appender name="errorAppender" class="jp.co.xxx.trans.log.ErrorsFileAppender"> 55 <param name="threshold" value="error"/> 56 <param name="File" value="${catalina.home}/logs/trans/errors/error.log" /> 57 <param name="Append" value="true" /> 58 <layout class="org.apache.log4j.PatternLayout"> 59 <param name="ConversionPattern" value="%-5p\t%d\t[%t]\t%m%n" /> 60 </layout> 61 </appender> 62 63 <logger name="error"> 64 <appender-ref ref="errorAppender"/> 65 </logger> 66 <logger name="warn"> 67 <appender-ref ref="warnAppender"/> 68 </logger> 69 <logger name="jp.co.xxx.trans"> 70 <appender-ref ref="trace"/> 71 </logger> 72 <logger name="org.seasar.extension.jdbc"> 73 <appender-ref ref="trace"/> 74 <appender-ref ref="update"/> 75 </logger> 76 <logger name="org.seasar.framework.aop.interceptors.TraceInterceptor"> 77 <appender-ref ref="trace"/> 78 </logger> 79 <logger name="org.seasar.extension.jta"> 80 <appender-ref ref="trace"/> 81 </logger> 82 <logger name="org.seasar.extension.filter.RequestDumpFilter"> 83 <appender-ref ref="request"/> 84 </logger> 85 <root> 86 <appender-ref ref="system"/> 87 </root> 88</log4j:configuration>
その他原因解明に必要な事項があればお手数ですがお伺いできますと幸いです。
よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー