namespace Admin.NET.Core;
///
/// 数据库日志写入器
///
public class DatabaseLoggingWriter : IDatabaseLoggingWriter
{
private readonly SqlSugarRepository _sysLogOpRep; // 操作日志
private readonly SqlSugarRepository _sysLogExRep; // 异常日志
public DatabaseLoggingWriter(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 = logMsg.EventId.Id.ToString(),
Message = logMsg.Message,
Exception = logMsg.Exception?.ToString(),
State = logMsg.State?.ToString(),
LogDateTime = logMsg.LogDateTime,
ThreadId = logMsg.ThreadId,
TraceId = logMsg.TraceId,
UseUtcTimestamp = logMsg.UseUtcTimestamp,
});
}
else
{
_sysLogExRep.Insert(new SysLogEx
{
LogName = logMsg.LogName,
LogLevel = logMsg.LogLevel.ToString(),
EventId = logMsg.EventId.Id.ToString(),
Message = logMsg.Message,
Exception = logMsg.Exception?.ToString(),
State = logMsg.State?.ToString(),
LogDateTime = logMsg.LogDateTime,
ThreadId = logMsg.ThreadId,
TraceId = logMsg.TraceId,
UseUtcTimestamp = logMsg.UseUtcTimestamp,
});
}
}
}