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);
|
}
|
}
|
}
|