初心者なので、使い方間違ってたらご教授ください。
クラスライブラリで以下のようなコードを書く。プロジェクト名も MyLogger
とした
using System; using System.Diagnostics; using System.IO; namespace MyLogger { public class MyLogger : TraceListener { public MyLogger() { var dirname = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "ProgramName"); if (!Directory.Exists(dirname)) { Directory.CreateDirectory(dirname); } LogFileName = Path.Combine(dirname, DateTime.Now.ToString("yyyyMMdd") + ".txt"); } string LogFileName; public override void WriteLine(string message) { throw new NotImplementedException(); } public override void WriteLine(string message, string category) { File.AppendAllText(LogFileName, string.Format("{0} {1} {2}" + Environment.NewLine, DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"), category, message)); } public override void Write(string message) { throw new NotImplementedException(); } } }
WPFプロジェクトの参照から、 MyLogger
を追加する。
WPFプロジェクトの App.config
内の <configuration>
内に
<system.diagnostics> <trace autoflush="true" indentsize="4"> <listeners> <add name="dbgListener" type="MyLogger.MyLogger,MyLogger" /> </listeners> </trace> </system.diagnostics>
を追加する。
type="MyLogger.MyLogger,MyLogger"
は
type="名前空間.クラス名,DLL名=プロジェクト名"
を意味する。
適当な場所で
Trace.WriteLine("message", "category");
という感じで使う。