namespace Admin.NET.Core;
///
/// 数据库日志写入器
///
public class DbLoggingWriter : IDatabaseLoggingWriter
{
private readonly SqlSugarRepository _sysLogOpRep; // 操作日志
private readonly SqlSugarRepository _sysLogExRep; // 异常日志
public DbLoggingWriter(SqlSugarRepository sysLogOpRep,
SqlSugarRepository sysLogExRep)
{
_sysLogOpRep = sysLogOpRep;
_sysLogExRep = sysLogExRep;
}
public void Write(LogMessage logMsg, bool flush)
{
if (logMsg.LogLevel == Microsoft.Extensions.Logging.LogLevel.Information)
{
_sysLogOpRep.Insert(new SysLogOp
{
LogName = logMsg.LogName,
LogLevel = logMsg.LogLevel.ToString(),
EventId = JSON.Serialize(logMsg.EventId),
Message = logMsg.Message,
Exception = logMsg.Exception == null ? "" : JSON.Serialize(logMsg.Exception),
});
}
else
{
_sysLogExRep.Insert(new SysLogEx
{
LogName = logMsg.LogName,
LogLevel = logMsg.LogLevel.ToString(),
EventId = JSON.Serialize(logMsg.EventId),
Message = logMsg.Message,
Exception = logMsg.Exception == null ? "" : JSON.Serialize(logMsg.Exception),
});
}
}
}