You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
58 lines
1.7 KiB
58 lines
1.7 KiB
using NLog;
|
|
using NLog.Config;
|
|
using NLog.Targets;
|
|
|
|
namespace Mirle.Component.Record
|
|
{
|
|
/// <summary>
|
|
/// 記錄檔類別
|
|
/// </summary>
|
|
public class LogWrapper
|
|
{
|
|
/// <summary>
|
|
/// 建構式
|
|
/// </summary>
|
|
private LogWrapper() { }
|
|
/// <summary>
|
|
/// 關聯式資料庫物件
|
|
/// </summary>
|
|
private static volatile LogWrapper _logFile;
|
|
/// <summary>
|
|
/// 物件鎖定
|
|
/// </summary>
|
|
private static readonly object _syncRoot = new object();
|
|
/// <summary>
|
|
/// 記錄設定檔
|
|
/// </summary>
|
|
private static readonly LoggingConfiguration _loggingConfiguration = new LoggingConfiguration();
|
|
/// <summary>
|
|
/// 紀錄檔實例
|
|
/// </summary>
|
|
public static LogWrapper Instance
|
|
{
|
|
get
|
|
{
|
|
if (_logFile == null)
|
|
{
|
|
lock (_syncRoot) // 鎖定避免多執行緒重覆呼叫建立物件
|
|
{
|
|
_logFile = new LogWrapper();
|
|
}
|
|
}
|
|
return _logFile;
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// 取得記錄器
|
|
/// </summary>
|
|
/// <param name="logger">紀錄器名稱</param>
|
|
/// <param name="fileTarget">紀錄器設定檔</param>
|
|
/// <returns>紀錄器物件</returns>
|
|
public Logger GetLogger(string logger, FileTarget fileTarget)
|
|
{
|
|
_loggingConfiguration.AddRuleForAllLevels(fileTarget, logger);
|
|
LogManager.Configuration = _loggingConfiguration;
|
|
return LogManager.GetLogger(logger);
|
|
}
|
|
}
|
|
}
|