public static Logger MakeLogger(LoggerOption option) { #if UNITY_3_0 || UNITY_3_0_0 || UNITY_3_1 || UNITY_3_2 || UNITY_3_3 || UNITY_3_4 || UNITY_3_5 || UNITY_4_0 || UNITY_4_1 || UNITY_4_2 CompositeLogger logger = new CompositeLogger(); if (option.isPrintEnabled) { logger.Add(new UnityConsoleLogger()); } if (option.isWriteEnabled) { logger.Add(new UnityFileLogger(option)); } return(logger); #else CompositeLogger logger = new CompositeLogger(); if (option.isPrintEnabled) { logger.Add(new DefaultConsoleLogger()); } if (option.isWriteEnabled) { logger.Add(new DefaultFileLogger()); } return(logger); #endif }
public void LogObject(object messageObject, LoggerOption loggerOption) { var message = JsonConvert.SerializeObject( messageObject, Formatting.Indented, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore } ); switch (loggerOption) { case LoggerOption.Debug: _logger.Debug(message); break; case LoggerOption.Info: _logger.Info(message); break; case LoggerOption.Warning: _logger.Warn(message); break; case LoggerOption.Error: _logger.Error(message); break; case LoggerOption.Fatal: _logger.Fatal(message); break; } }
/// <summary> /// </summary> /// <param name="option"></param> /// <param name="format"></param> /// <param name="args"></param> public static void Write(LoggerOption option, string format, params object[] args) { switch (_mode) { case LoggerMode.Console: { #region Console Console.ResetColor(); switch (option) { case LoggerOption.None: { Console.ForegroundColor = ConsoleColor.White; } break; case LoggerOption.Error: { Console.ForegroundColor = ConsoleColor.Red; } break; case LoggerOption.Warning: { Console.ForegroundColor = ConsoleColor.Yellow; } break; case LoggerOption.Info: { Console.ForegroundColor = ConsoleColor.Green; } break; } if (args.Length > 0) { Console.WriteLine(format, args); } else { Console.WriteLine(format); } Console.ResetColor(); #endregion } break; case LoggerMode.Trace: { #region Trace switch (option) { case LoggerOption.None: { if (args.Length > 0) { Trace.WriteLine(string.Format(format, args)); } else { Trace.WriteLine(format); } } break; case LoggerOption.Error: { if (args.Length > 0) { Trace.TraceError(format, args); } else { Trace.TraceError(format); } } break; case LoggerOption.Warning: { if (args.Length > 0) { Trace.TraceWarning(format, args); } else { Trace.TraceWarning(format); } } break; case LoggerOption.Info: { if (args.Length > 0) { Trace.TraceInformation(format, args); } else { Trace.TraceInformation(format); } } break; } #endregion } break; case LoggerMode.Event: { #region Event switch (option) { case LoggerOption.None: { } break; case LoggerOption.Error: { } break; case LoggerOption.Warning: { } break; case LoggerOption.Info: { } break; } #endregion } break; } }
/// <summary> /// </summary> /// <param name="option"></param> /// <param name="msg"></param> public static void Write(LoggerOption option, object msg) { Write(option, msg.To<string>()); }
/// <summary> /// </summary> /// <param name="option"></param> /// <param name="msg"></param> public static void Write(LoggerOption option, object msg) { Write(option, msg.To <string>()); }
public static ResillienceBuilder AddSeriLog(this ResillienceBuilder builder, IConfiguration configuration = null) { configuration = (configuration ?? builder.Services.BuildServiceProvider().GetService <IConfiguration>()); LoggerOption loggerOption = configuration.GetSection("Resillience:Logger").Get <LoggerOption>(); IServiceCollection services = builder.Services; //services.AddSingleton<IResillienceLogger, ResillienceLogger>(); services.AddSingleton(sp => { //控制台serilog日志展示模板 string logTemplete = "[{Timestamp:HH:mm:ss}][{Level}]{NewLine}Source:{SourceContext}{NewLine}Message:{Message}{NewLine}{Exception}{NewLine}"; //elasticsearch地址 var EsUri = loggerOption.EsUri; //日志记录级别 LogEventLevel logEventLevel = LogEventLevel.Verbose; LogLevel logLevel = (LogLevel)Enum.Parse(typeof(LogLevel), loggerOption.Level); var LoggerConfiguration = new LoggerConfiguration(); switch (logLevel) { case LogLevel.Verbose: LoggerConfiguration = LoggerConfiguration.MinimumLevel.Verbose(); logEventLevel = LogEventLevel.Verbose; break; case LogLevel.Debug: LoggerConfiguration = LoggerConfiguration.MinimumLevel.Debug(); logEventLevel = LogEventLevel.Debug; break; case LogLevel.Information: LoggerConfiguration = LoggerConfiguration.MinimumLevel.Information(); logEventLevel = LogEventLevel.Information; break; case LogLevel.Warning: LoggerConfiguration = LoggerConfiguration.MinimumLevel.Warning(); logEventLevel = LogEventLevel.Warning; break; case LogLevel.Error: LoggerConfiguration = LoggerConfiguration.MinimumLevel.Error(); logEventLevel = LogEventLevel.Error; break; case LogLevel.Fatal: LoggerConfiguration = LoggerConfiguration.MinimumLevel.Fatal(); logEventLevel = LogEventLevel.Fatal; break; default: LoggerConfiguration = LoggerConfiguration.MinimumLevel.Verbose(); logEventLevel = LogEventLevel.Verbose; break; } ; LoggerConfiguration = LoggerConfiguration .MinimumLevel.Override("Microsoft", LogEventLevel.Information) .MinimumLevel.Override("System", LogEventLevel.Information); Log.Logger = LoggerConfiguration .WriteTo.Elasticsearch(new ElasticsearchSinkOptions(new Uri(EsUri)) { AutoRegisterTemplate = true, FailureCallback = e => Console.WriteLine("Unable to submit event " + e.MessageTemplate), EmitEventFailure = EmitEventFailureHandling.WriteToSelfLog | EmitEventFailureHandling.WriteToFailureSink | EmitEventFailureHandling.RaiseCallback, FailureSink = new FileSink("./Logs/log.txt", new JsonFormatter(), null) }).WriteTo.Console(logEventLevel, logTemplete).ReadFrom.Configuration(configuration, "Resillience:Logger:Serilog").CreateLogger(); return(Log.Logger); }); services.AddSingleton((Func <IServiceProvider, ILoggerFactory>)((IServiceProvider provider) => new Serilog.Extensions.Logging.SerilogLoggerFactory(provider.GetService <Serilog.ILogger>()))); return(builder); }