using System.Text; using log4net; using log4net.Appender; using log4net.Layout; using log4net.Repository.Hierarchy; namespace SA_LTT { public class LogCreater { private string _logName; private string _logPath; private ILog _log = LogManager.GetLogger("Button"); public LogCreater(string logName, string logPath = @"D:\Log\") { _logName = logName; _logPath = logPath; _log = LogManager.GetLogger($"{_logName}"); CreateLogger(); } private void CreateLogger() { Hierarchy hierarchy = (Hierarchy)LogManager.GetRepository(); RollingFileAppender rollingAppender = new RollingFileAppender(); PatternLayout layout = new PatternLayout(); hierarchy.Configured = true; rollingAppender.Name = $"{_logName}_RoolingFile"; rollingAppender.LockingModel = new RollingFileAppender.MinimalLock(); rollingAppender.File = $@"{_logPath}\"; rollingAppender.AppendToFile = true; rollingAppender.DatePattern = $"yyyy\\\\MM\\\\'{_logName}'_dd'.log'"; rollingAppender.RollingStyle = RollingFileAppender.RollingMode.Composite; rollingAppender.MaxSizeRollBackups = 10; rollingAppender.MaximumFileSize = "100MB"; rollingAppender.StaticLogFileName = false; rollingAppender.Encoding = Encoding.UTF8; rollingAppender.PreserveLogFileNameExtension = true; layout = new PatternLayout("%d{yyyy/MM/dd HH:mm:ss.fff}, %m%n"); layout.ActivateOptions(); rollingAppender.Layout = layout; rollingAppender.ActivateOptions(); hierarchy.GetLogger($"{_logName}"); ILog log = LogManager.GetLogger($"{_logName}"); Logger l = (Logger)log.Logger; l.Level = log4net.Core.Level.Debug; l.AddAppender(rollingAppender); _log = LogManager.GetLogger($"{_logName}"); } public void WriteLog(string message) { _log.Debug(message); } } }