- - PR -
log4netでの文字化け
1
投稿者 | 投稿内容 | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-05-21 18:12
はじめまして。みつんと申します。
今回初めてlog4netでロギングを行うことになりました。 ダウンロードから始め、サンプルを作って出力されたログファイルを見たところ、 日本語部分が文字化けしていました。 EncodingにShift-JISを設定しているのですがうまいきません。 基本的な事でお恥ずかしいのですが、 どなたかお力をお借りできませんでしょうか?? 何卒、宜しくお願いいたします。 -------------------------------------------------------------- <?xml version="1.0" encoding="Shift_JIS" ?> <log4net debug="false"> <appender name="TEST" type="log4net.Appender.FileAppender,log4net" > <param name="File" value="error_log.txt" /> <param name="AppendToFile" value="true" /> <param name="Encoding" value="Windows-31J"/> <layout type="log4net.Layout.PatternLayout,log4net"> <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] <%X {auth}> - %m%n" /> </layout> </appender> <root> <priority value="WARN" /> <appender-ref ref="TEST" /> </root> <category name="TestLogin"><priority value="DEBUG" /></category> </log4net> _________________ | ||||||||||||||||||||
|
投稿日時: 2004-05-24 07:47
どうも、.NET Frameworkでは "Windows-31J" というエンコード名が使えないような……。
で試してみましたが、
ですね。 (IANAで登録されている名前なので、サポートされていないのが問題な気がしますけど……。) それはともかく、ここを
としてみたら、どうでしょう? [ メッセージ編集済み 編集者: ぢゃん♪ 編集日時 2004-05-24 09:12 ] | ||||||||||||||||||||
|
投稿日時: 2004-05-24 09:42
駄目な原因はぢゃん♪さんの書き込みを参照していただくとして、ちょっと補足です。
もしここのencodingをShift-JISに設定したということなら、意味が違います。 この指定は、簡単に言うとxmlファイル自身がどのようなエンコーディングで保存されているかを意味します。 ここでは、log4netの「設定ファイル自身」のエンコーディングを指定しなければなりません。 設定ファイルがUTF8等で保存されているのに、Shift_JISなどに設定するのは誤りです。 日本語が含まれていないと実際には同じになったりしますが、間違って理解していたなら注意したほうが良いと思います。 | ||||||||||||||||||||
|
投稿日時: 2004-05-24 11:23
ぢゃん♪さん、なちゃさん、ご返答ありがとうございます。
確かにあの後、VSのログをよく見ると、 log4net:WARN Unable to set property [Encoding] on object [log4net.Appender.FileAppender] (no property found) log4net:WARN Unable to set property [Encoding] on object [log4net.Appender.FileAppender] (with acceptable conversion types) というワーニングが出ていました。 これは例の箇所を <param name="Encoding" value="Shift_JIS"/> としても出力されます。
ご指摘ありがとうございます。確かにそのとおりですね。 念のため、Shift-JISで新しくファイルを作り保存しました。 出力されたログファイルは秀丸で開いているのですが、 エンコードをUTF-8に変更してから開くと、 ちゃんと日本語表示されます。(当たり前ですね..。) log4netのバージョンは1.1.1なんですが、古いのでしょうか...。 ベータ版ではまだ上がありましたよねぇ。 いえ、私の設定がおかしいんですよね、きっと。 |
1