public override void WriteEvent(LogEvent logEvent, LoggerEnvironment environment)
 {
     lock (_sync)
     {
         File.AppendAllText(environment.GetLogFile(environment.GetDailyLogFileName(Name)), logEvent.ToString(Format) + Environment.NewLine);
     }
 }
예제 #2
0
        /// <summary>
        /// Configures the serilog logging.
        /// </summary>
        /// <param name="hostBuilder">The host builder.</param>
        public static IHostBuilder ConfigureSerilogLogging(this IHostBuilder hostBuilder)
        {
            hostBuilder
            .ConfigureAppConfiguration((builderContext, config) =>
            {
                var env           = builderContext.HostingEnvironment;
                var configuration = config.Build();
                LoggerEnvironment.Configure(env, configuration);
            });
            hostBuilder.UseSerilog();

            return(hostBuilder);
        }
예제 #3
0
        public override void WriteEvent(LogEvent logEvent, LoggerEnvironment environment)
        {
            EventLogInit(environment);

            EventLogEntryType type = EventLogEntryType.Information;

            switch (logEvent.Level)
            {
            case LogLevel.Error: type = EventLogEntryType.Error; break;

            case LogLevel.Warning: type = EventLogEntryType.Warning; break;
            }

            _eventLog.WriteEntry(logEvent.Message, type);
        }
예제 #4
0
        private void EventLogInit(LoggerEnvironment environment)
        {
            if (_eventLog != null)
            {
                return;
            }

            string source = string.IsNullOrEmpty(Name) ? $"{environment.AppName}" : $"{environment.AppName}({Name})";

            if (!EventLog.SourceExists(source))
            {
                EventLog.CreateEventSource(source, "Application");
            }

            _eventLog = new EventLog
            {
                Source = source
            };
        }
        public override void WriteEvent(LogEvent logEvent, LoggerEnvironment environment)
        {
            switch (logEvent.Level)
            {
            case LogLevel.Info:
                Console.ForegroundColor = ConsoleColor.White;
                break;

            case LogLevel.Warning:
                Console.ForegroundColor = ConsoleColor.Yellow;
                break;

            case LogLevel.Debug:
                Console.ForegroundColor = ConsoleColor.Green;
                break;

            case LogLevel.Error:
                Console.ForegroundColor = ConsoleColor.Red;
                break;
            }

            Console.WriteLine(logEvent.ToString(Format));
            Console.ResetColor();
        }
 public static string GetPath(this LoggerEnvironment environment)
 {
     return(Directory.CreateDirectory(environment.Path).FullName);
 }
 public static string GetLogFile(this LoggerEnvironment environment, string logFileName)
 {
     return(Path.Combine(environment.GetPath(), logFileName));
 }
 public static string GetDailyLogFileName(this LoggerEnvironment environment, string name)
 {
     return(string.IsNullOrEmpty(name) ? $"{environment.AppName}[{DateTime.Now:yyyy-MM-dd}].log" : $"{environment.AppName}({name})[{DateTime.Now:yyyy-MM-dd}].log");
 }
 public static string GetLogFileName(this LoggerEnvironment environment, string name)
 {
     return(string.IsNullOrEmpty(name) ? $"{environment.AppName}.log" : $"{environment.AppName}({name}).log");
 }
 public override void WriteEvent(LogEvent logEvent, LoggerEnvironment environment)
 {
     Debug.WriteLine(logEvent.ToString(Format));
 }
예제 #11
0
 public abstract void WriteEvent(LogEvent logEvent, LoggerEnvironment environment);