214 lines
8.1 KiB
C#
214 lines
8.1 KiB
C#
using NLog;
|
|
using Sentry;
|
|
using System;
|
|
|
|
namespace HRD.AppLogger
|
|
{
|
|
public class LoggerManager : ILoggerManager
|
|
{
|
|
private static readonly ILogger logger = LogManager.GetCurrentClassLogger();
|
|
|
|
public LoggerManager(bool throwExceptions = true) : this()
|
|
{
|
|
LogManager.ThrowExceptions = throwExceptions;
|
|
}
|
|
|
|
public LoggerManager()
|
|
{
|
|
GlobalDiagnosticsContext.Set("Version", AppLoggerConfig.AssemblyVersion);
|
|
GlobalDiagnosticsContext.Set("Application", AppLoggerConfig.AssemblyName);
|
|
|
|
LogManager.ThrowConfigExceptions = true;
|
|
LogManager.ThrowExceptions = false;
|
|
LogManager.Configuration = AppLoggerConfig.CreateConfig();
|
|
}
|
|
|
|
public void WriteLog(Action<Object> log, Object message, string entityMessage = null, string webrequest = null, string userLogin = null)
|
|
{
|
|
MappedDiagnosticsLogicalContext.Set("Entity", !String.IsNullOrEmpty(entityMessage) ? entityMessage : "");
|
|
MappedDiagnosticsLogicalContext.Set("Webrequest", !String.IsNullOrEmpty(webrequest) ? webrequest : "");
|
|
|
|
if (AppLoggerConfig.NlogSentryConfig.NlogSentryIsEnable)
|
|
{
|
|
SentrySdk.WithScope(scope =>
|
|
{
|
|
if (!String.IsNullOrEmpty(entityMessage))
|
|
{
|
|
scope.SetTag("Entity", entityMessage);
|
|
}
|
|
|
|
if (!String.IsNullOrEmpty(webrequest))
|
|
{
|
|
scope.SetTag("Webrequest", webrequest);
|
|
}
|
|
|
|
if (!String.IsNullOrEmpty(userLogin))
|
|
{
|
|
scope.SetTag("UserLogin", userLogin);
|
|
}
|
|
|
|
log(message);
|
|
});
|
|
}
|
|
else log(message);
|
|
}
|
|
|
|
public void LogDebug(string message, string entityMessage = null, string webrequest = null, string userLogin = null)
|
|
{
|
|
WriteLog(logger.Debug, message, entityMessage, webrequest, userLogin);
|
|
|
|
/* MappedDiagnosticsLogicalContext.Set("Entity", !String.IsNullOrEmpty(entityMessage) ? entityMessage : "");
|
|
MappedDiagnosticsLogicalContext.Set("Webrequest", !String.IsNullOrEmpty(webrequest) ? webrequest : "");
|
|
|
|
if (AppLoggerConfig.NlogSentryConfig.NlogSentryIsEnable)
|
|
{
|
|
SentrySdk.WithScope(scope =>
|
|
{
|
|
if (!String.IsNullOrEmpty(entityMessage))
|
|
{
|
|
scope.SetTag("Entity", entityMessage);
|
|
}
|
|
|
|
if (!String.IsNullOrEmpty(webrequest))
|
|
{
|
|
scope.SetTag("Webrequest", webrequest);
|
|
}
|
|
|
|
if (!String.IsNullOrEmpty(userLogin))
|
|
{
|
|
scope.SetTag("UserLogin", userLogin);
|
|
}
|
|
|
|
logger.Debug(message);
|
|
});
|
|
}
|
|
else logger.Debug(message);*/
|
|
}
|
|
|
|
public void LogError(string message, string entityMessage = null, string webrequest = null, string userLogin = null)
|
|
{
|
|
//WriteLog(logger.Error, message, entityMessage, webrequest, userLogin);
|
|
MappedDiagnosticsLogicalContext.Set("Entity", !String.IsNullOrEmpty(entityMessage) ? entityMessage : "");
|
|
MappedDiagnosticsLogicalContext.Set("Webrequest", !String.IsNullOrEmpty(webrequest) ? webrequest : "");
|
|
|
|
if (AppLoggerConfig.NlogSentryConfig.NlogSentryIsEnable)
|
|
{
|
|
SentrySdk.WithScope(scope =>
|
|
{
|
|
if (!String.IsNullOrEmpty(entityMessage))
|
|
{
|
|
scope.SetTag("Entity", entityMessage);
|
|
}
|
|
|
|
if (!String.IsNullOrEmpty(webrequest))
|
|
{
|
|
scope.SetTag("Webrequest", webrequest);
|
|
}
|
|
|
|
if (!String.IsNullOrEmpty(userLogin))
|
|
{
|
|
scope.SetTag("UserLogin", userLogin);
|
|
}
|
|
|
|
logger.Error(message);
|
|
});
|
|
}
|
|
else logger.Error(message);
|
|
}
|
|
|
|
public void LogException(Exception exception, string entityMessage = null, string webrequest = null, string userLogin = null)
|
|
{
|
|
//WriteLog(logger.Error, exception, entityMessage, webrequest, userLogin);
|
|
|
|
MappedDiagnosticsLogicalContext.Set("Entity", !String.IsNullOrEmpty(entityMessage) ? entityMessage : "");
|
|
MappedDiagnosticsLogicalContext.Set("Webrequest", !String.IsNullOrEmpty(webrequest) ? webrequest : "");
|
|
|
|
if (AppLoggerConfig.NlogSentryConfig.NlogSentryIsEnable)
|
|
{
|
|
SentrySdk.WithScope(scope =>
|
|
{
|
|
if (!String.IsNullOrEmpty(entityMessage))
|
|
{
|
|
scope.SetTag("Entity", entityMessage);
|
|
}
|
|
|
|
if (!String.IsNullOrEmpty(webrequest))
|
|
{
|
|
scope.SetTag("Webrequest", webrequest);
|
|
}
|
|
|
|
if (!String.IsNullOrEmpty(userLogin))
|
|
{
|
|
scope.SetTag("UserLogin", userLogin);
|
|
}
|
|
|
|
logger.Error(exception);
|
|
});
|
|
}
|
|
else logger.Error(exception);
|
|
}
|
|
|
|
public void LogWarn(string message, string entityMessage = null, string webrequest = null, string userLogin = null)
|
|
{
|
|
//WriteLog(logger.Warn, message, entityMessage, webrequest, userLogin);
|
|
|
|
MappedDiagnosticsLogicalContext.Set("Entity", !String.IsNullOrEmpty(entityMessage) ? entityMessage : "");
|
|
MappedDiagnosticsLogicalContext.Set("Webrequest", !String.IsNullOrEmpty(webrequest) ? webrequest : "");
|
|
|
|
if (AppLoggerConfig.NlogSentryConfig.NlogSentryIsEnable)
|
|
{
|
|
SentrySdk.WithScope(scope =>
|
|
{
|
|
if (!String.IsNullOrEmpty(entityMessage))
|
|
{
|
|
scope.SetTag("Entity", entityMessage);
|
|
}
|
|
|
|
if (!String.IsNullOrEmpty(webrequest))
|
|
{
|
|
scope.SetTag("Webrequest", webrequest);
|
|
}
|
|
|
|
if (!String.IsNullOrEmpty(userLogin))
|
|
{
|
|
scope.SetTag("UserLogin", userLogin);
|
|
}
|
|
|
|
logger.Warn(message);
|
|
});
|
|
}
|
|
else logger.Warn(message);
|
|
}
|
|
|
|
public void LogInfo(string message, string entityMessage = null, string webrequest = null, string userLogin = null)
|
|
{
|
|
//WriteLog(logger.Info, message, entityMessage, webrequest, userLogin);
|
|
MappedDiagnosticsLogicalContext.Set("Entity", !String.IsNullOrEmpty(entityMessage) ? entityMessage : "");
|
|
MappedDiagnosticsLogicalContext.Set("Webrequest", !String.IsNullOrEmpty(webrequest) ? webrequest : "");
|
|
|
|
if (AppLoggerConfig.NlogSentryConfig.NlogSentryIsEnable)
|
|
{
|
|
SentrySdk.WithScope(scope =>
|
|
{
|
|
if (!String.IsNullOrEmpty(entityMessage))
|
|
{
|
|
scope.SetTag("Entity", entityMessage);
|
|
}
|
|
|
|
if (!String.IsNullOrEmpty(webrequest))
|
|
{
|
|
scope.SetTag("Webrequest", webrequest);
|
|
}
|
|
|
|
if (!String.IsNullOrEmpty(userLogin))
|
|
{
|
|
scope.SetTag("UserLogin", userLogin);
|
|
}
|
|
|
|
logger.Info(message);
|
|
});
|
|
}
|
|
else logger.Info(message);
|
|
}
|
|
}
|
|
} |