BOOK-IQ4TD9B9LB\DIT-930
2023-05-15 f5120e92b525474f6b4e50130797946986c28eed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
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);
        }
    }
}