using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Security.Cryptography; using System.IO; using Serilog; using Serilog.Events; using log4net; namespace SERVER.LIB { public static class LogHelp_ { private static object locks = new object(); private static string path = Directory.GetCurrentDirectory(); public static string time = string.Empty; private static ILog log = LogManager.GetLogger("All"); public static void Init() { if (time == string.Empty) { lock (locks) { if (time == string.Empty) { time = DateTime.Now.ToString("yyyy_MM_dd"); string pathurl = path + "\\App_Data\\Log\\XC.log"; Directory.CreateDirectory(path + "\\App_Data\\Log"); Log.Logger = new LoggerConfiguration() .MinimumLevel.Warning() .MinimumLevel.Override("Microsoft", LogEventLevel.Warning) .Enrich.FromLogContext() .WriteTo.Console() .WriteTo.File(pathurl, // 日志文件名 outputTemplate: // 设置输出格式,显示详细异常信息 @"{Timestamp:yyyy-MM-dd HH:mm-ss.fff }[{Level:u3}] {Message:lj}{NewLine}{Exception}", rollingInterval: RollingInterval.Day, // 日志按day保存 rollOnFileSizeLimit: true, // 限制单个文件的最大长度 encoding: Encoding.UTF8, // 文件字符编码 retainedFileCountLimit: 10, // 最大保存文件数 fileSizeLimitBytes: 5000 * 1024) // 最大单个文件长度 5m .CreateLogger(); }; } } } public static void Error(string msg) { Init(); Log.Error(msg); log.Error(msg); } public static void Warning(string msg) { Init(); Log.Warning(msg); } } }