123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- using System.Diagnostics;
- using Serilog;
- using WingServerCommon.Config;
- using WingServerCommon.Config.Parameters;
- namespace WingServerCommon.Log
- {
- public class ServerLoggerEngine : ILogEngine
- {
- private Serilog.Core.Logger _logger;
- private static string _server = ConfigurationManager.GetParammeter<StringParameter>("Database", "Server").Value;
- private static int _port = ConfigurationManager.GetParammeter<IntParameter>("Database", "Port").Value;
- private static bool _debugMode = ConfigurationManager.GetParammeter<BoolParameter>("Log", "Debug").Value;
- public ServerLoggerEngine()
- {
- var settings = ConfigurationManager.LogSettings;
- if (_debugMode)
- {
- _logger = new LoggerConfiguration()
- .MinimumLevel.Debug()
- .MinimumLevel.Verbose()
- .WriteTo.MongoDB($"mongodb://{_server}:{_port}/WingCloudLogs", batchPostingLimit: 1000)
- .WriteTo.Console()
- .CreateLogger();
- }
- else
- {
- _logger = new LoggerConfiguration()
- .MinimumLevel.Debug()
- .MinimumLevel.Verbose()
- .WriteTo.MongoDB($"mongodb://{_server}:{_port}/WingCloudLogs", batchPostingLimit: 1000)
- .CreateLogger();
- }
- }
- /// <summary>
- /// Write the log
- /// </summary>
- /// <param name="level">Log's level see <see cref="TraceLevel"/></param>
- /// <param name="msg">The message to write</param>
- public void Write(TraceLevel level, string msg)
- {
- var threadId = Thread.CurrentThread.ManagedThreadId;
- var log = $"Thead({threadId})-{msg}";
- switch (level)
- {
- case TraceLevel.Error:
- _logger.Error(log);
- break;
- case TraceLevel.Warning:
- _logger.Warning(log);
- break;
- case TraceLevel.Info:
- _logger.Information(log);
- break;
- case TraceLevel.Verbose:
- _logger.Verbose(log);
- break;
- case TraceLevel.Off:
- _logger.Debug(log);
- break;
- }
- }
- }
- }
|