2009年8月23日日曜日

Trace.WriteLine("オレはどこに出力されるんだYo?");

このエントリーをはてなブックマークに追加
Mono で System.Diagnostics.Trace.WriteLine メソッド使用時の Trace ログ出力先についてのメモ。

共通事項

コンパイルオブション -d:TRACE を指定。

$ gmcs -d:TRACE foo.cs

Console、WinForm、GTK# アプリ内で使用

方法1:app.config(foo.exe.config)ファイルで設定

 Trace ログファイルパスの指定:
<configuration>
...
  <system.diagnostics>
    <assert logfilename="/path/to/trace.log"/>
  </system.diagnostics>
...
</configuration>
方法2:環境変数 MONO_TRACE_LISTENER で設定

 Trace ログファイルパスの指定:
export MONO_TRACE_LISTENER="/path/to/trace.log"
標準または標準エラー出力の指定:
export MONO_TRACE_LISTENER="Console.Out:Foo : "
"[Console.Out|Console.Error]:prefix"
 Console.Out:標準出力
 Console.Error:標準エラー出力
 prefix:出力ログの前に付ける文字列
方法1、2両方とも設定した場合、両方の設定が有効。

ASP.NET Webアプリ内で使用

Web.config ファイルで設定

 Trace ログファイルパスの指定:
<configuration>
...
  <system.diagnostics>
    <trace autoflush="true">
      <listeners>
        <add name="FooTracer"
type="System.Diagnostics.TextWriterTraceListener, System, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
initializeData="/path/to/trace.log" />
      </listeners>
    </trace>
  </system.diagnostics>
...
</configuration>

参考


ということで、Apache 2.2 + mod_mono 2.4.2 on Ubuntu 9.04 で当初、「/etc/apache2/envvars」に MONO_TRACE_LISTENER の設定を記述してたけど、この記述は無効なので、この部分を削除。

0 件のコメント:

コメントを投稿