Exemple #1
0
        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);
        }
Exemple #2
0
        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();
            }
        }