public void Log <TState>(LogLevel logLevel, EventId eventId, TState state, Exception exception, Func <TState, Exception, string> formatter) { if (!IsEnabled(logLevel)) { return; } if (formatter == null) { throw new ArgumentNullException(nameof(formatter)); } var mensaje = formatter(state, exception); if (string.IsNullOrEmpty(mensaje)) { return; } if (exception != null) { mensaje += "\n" + exception.ToString(); } var entrada = new EntradaLog { Mensaje = mensaje, IdEvento = eventId.Id, NivelLog = logLevel.ToString(), FechaCreacion = DateTime.UtcNow }; _loggingManager.InsertarLog(entrada); }
public void InsertarLog(EntradaLog entradaLog) { var directorio = System.IO.Path.GetDirectoryName(_nombreArchivo); if (!System.IO.Directory.Exists(directorio)) { System.IO.Directory.CreateDirectory(directorio); } try { locker.AcquireWriterLock(int.MaxValue); System.IO.File.AppendAllText(_nombreArchivo, $"{entradaLog.IdEvento} {entradaLog.NivelLog} {entradaLog.Mensaje}" + Environment.NewLine); } finally { locker.ReleaseWriterLock(); } }