protected static void InitializeLogger(string logLevelSettingName, string fileName)
{
_logLevel = LogLevel.Warn;
var levelAsString = ConfigurationManager.AppSettings.Get(logLevelSettingName);
if (!String.IsNullOrEmpty(levelAsString))
{
_logLevel = LogLevel.FromString(levelAsString);
}
string filePath = Path.Combine(ArgusTV.Common.Logging.Logger.ArgusTVLogFolder, fileName);
var config = LogManager.Configuration;
if (config == null)
{
config = new LoggingConfiguration();
}
var fileTarget = new FileTarget
{
ConcurrentWrites = true,
FileName = filePath,
Layout = "${longdate} [${pad:padding=-5:fixedLength=true:inner=${level}}][${threadname:whenEmpty=${threadid}}]: ${message}",
BufferSize = 256 * 1024,
ArchiveFileName = filePath.Replace(".log", "_{#}.log"),
ArchiveAboveSize = 1000 * 1000, // 1MB
ArchiveNumbering = ArchiveNumberingMode.Rolling,
MaxArchiveFiles = 9
};
config.AddTarget("file", fileTarget);
var rule = new LoggingRule(logLevelSettingName, _logLevel, fileTarget);
config.LoggingRules.Add(rule);
LogManager.Configuration = config;
_log = LogManager.GetLogger(logLevelSettingName);
}