Microsoft Enterprise Library 5.0のLoggingブロックを使用していますが、LogWriterクラスとLoggerクラスの違いを知りたいと思いました。ロギングで使用するために構築したカスタムトレースリスナーがいくつかあり、LoggerとLogWriterを使用しても効果があるかどうかを知りたいと思いました。
MSDNからhttp://msdn.microsoft.com/en-us/library/microsoft.practices.enterpriselibrary.logging.logwriter.aspx
ログメッセージをデフォルト構成に書き込むには、ロガーファサードを使用します。カスタム構成を使用してログメッセージを書き込む必要がある場合にのみ、LogWriterのインスタンスを作成します。
コード例1:
namespace ExampleOne
{
using System;
using System.Diagnostics;
using Microsoft.Practices.EnterpriseLibrary.Common.Configuration;
using Microsoft.Practices.EnterpriseLibrary.Logging;
public class Program
{
private static LogWriter logger = EnterpriseLibraryContainer.Current.GetInstance<LogWriter>();
public static void Main(string[] args)
{
try
{
throw new Exception("My test exception message");
}
catch (Exception ex)
{
LogEntry logEntry = new LogEntry();
logEntry.Message = "Error: " + ex.ToString();
logEntry.Categories.Add("General");
logEntry.Severity = TraceEventType.Error;
logger.Write(logEntry);
}
}
}
}
コード例2:
namespace ExampleTwo
{
using System;
using System.Diagnostics;
using Microsoft.Practices.EnterpriseLibrary.Logging;
public class Program
{
public static void Main(string[] args)
{
try
{
throw new Exception("My test exception message");
}
catch (Exception ex)
{
LogEntry logEntry = new LogEntry();
logEntry.Message = "Error: " + ex.ToString();
logEntry.Categories.Add("General");
logEntry.Severity = TraceEventType.Error;
Logger.Write(logEntry);
}
}
}
}