私はWindowsプラットフォームまたはLinuxプラットフォーム(CentOS 7)でmono 4.2.3.4/832de4bを使用して実行できる単純なC#アプリケーションを用意しています。Log4NetとMonoにファイル名と行番号がありません
私はWindowsマシン上でlog4netの2.0.5を使って何かをログに記録しようとすると、私はRollingFileAppenderを使用して次のような出力が得られます。
2016-03-24 09:09:40,374 DEBUG 8 C:\src\Test\Program.cs::20::This is my debug message.
2016-03-24 09:09:40,397 INFO 8 C:\src\Test\Program.cs::21::This is my info message.
2016-03-24 09:09:40,398 WARN 8 C:\src\Test\Program.cs::22::This is my warning message.
2016-03-24 09:09:40,398 FATAL 8 C:\src\Test\Program.cs::23::This is my fatal message.
2016-03-24 09:09:40,399 ERROR 8 C:\src\Test\Program.cs::24::This is my error message.
私はLinuxボックスに上で、これをコピーして、私が得るモノを使用して実行します次のようになります。
2016-03-24 09:58:58,913 DEBUG 1 ::0::This is my debug message.
2016-03-24 09:58:58,920 INFO 1 ::0::This is my info message.
2016-03-24 09:58:58,920 WARN 1 ::0::This is my warning message.
2016-03-24 09:58:58,923 FATAL 1 ::0::This is my fatal message.
2016-03-24 09:58:58,923 ERROR 1 ::0::This is my error message.
出力からファイル名と行番号が表示されないのはなぜですか?理想的には、私はrsyslogでこの作業をしたいと思いますが、今は私の簡単なアプリケーションが正しく動作するようにしようとしています。
注:私はhereの情報を使って実装したlog4netのラッパークラスを持っています。
RollingFileAppenderの設定は次のようになります。
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="test_logfile.txt" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="50MB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %-5level %thread %file::%line::%message%newline" />
</layout>
</appender>