Пример #1
0
        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
        }
Пример #2
0
        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;
            }
        }
Пример #3
0
        /// <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;
            }
        }
Пример #4
0
 /// <summary>
 /// </summary>
 /// <param name="option"></param>
 /// <param name="msg"></param>
 public static void Write(LoggerOption option, object msg)
 {
     Write(option, msg.To<string>());
 }
Пример #5
0
        /// <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;
            }
        }
Пример #6
0
 /// <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);
        }