|
@@ -0,0 +1,46 @@
|
|
|
+// <author></author>
|
|
|
+// <date></date>
|
|
|
+// <description></description>
|
|
|
+
|
|
|
+using ERP.Framework.Config;
|
|
|
+using Serilog;
|
|
|
+using System;
|
|
|
+using System.Collections.Generic;
|
|
|
+using System.Linq;
|
|
|
+using System.Text;
|
|
|
+using System.Threading.Tasks;
|
|
|
+
|
|
|
+namespace ERP.Framework.Logger
|
|
|
+{
|
|
|
+ public static class LoggerBuilder
|
|
|
+ {
|
|
|
+ public static ILogger CreateLogger(LogConfig logConfig)
|
|
|
+ {
|
|
|
+ // 扩展增加Elk 或 MongoDB等
|
|
|
+ //if (logConfig.LogType == Enum.LogTypeEnum.Els)
|
|
|
+ //{
|
|
|
+ // return ...
|
|
|
+ //}
|
|
|
+
|
|
|
+ return AddLocalLog(logConfig);
|
|
|
+ }
|
|
|
+
|
|
|
+ private static ILogger AddLocalLog(LogConfig logConfig)
|
|
|
+ {
|
|
|
+ var outputTemplete = "[{Timestep:yyyy-MM-dd HH:mm:ss.fff}] {Level} ({SourceContext}) {Message} {NewLine} {Exception}";
|
|
|
+
|
|
|
+ var logConfiguration = new LoggerConfiguration()
|
|
|
+ .MinimumLevel.Debug()
|
|
|
+ .WriteTo.File(logConfig.FilePath,
|
|
|
+ rollingInterval: RollingInterval.Day,// 文件类别(分支,小时,天)
|
|
|
+ outputTemplate: outputTemplete, // 日志模板
|
|
|
+ retainedFileCountLimit:31, // 日志文件最大个数
|
|
|
+ retainedFileTimeLimit:TimeSpan.FromDays(7), // 日志保存时间
|
|
|
+ rollOnFileSizeLimit:true, // 是否限制单个文件最大大小
|
|
|
+ fileSizeLimitBytes:52428800 // 单个文件最大大小
|
|
|
+ );
|
|
|
+
|
|
|
+ return logConfiguration.CreateLogger();
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|