先使用NuGet安装log4net, 如下图
log4net封装类
using log4net.Appender;
using log4net.Config;
using log4net.Layout;
using log4net;
namespace test_log4net
{
public class Logger
{
private static readonly ILog log = LogManager.GetLogger(typeof(Logger));
static Logger()
{
var fileAppender = new FileAppender();
string log_path = string.Empty;
#if DEBUG
log_path = @"D:\MyLog.log";
#else
string doc_path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
DateTime now = DateTime.Now;
string _date = now.ToString("yyyy-MM-dd");
string path = doc_path + "/MyLog";
if (!Directory.Exists(path)) {
Directory.CreateDirectory(path);
}
log_path = path + "/" + _date + ".log";
#endif
fileAppender.File = log_path;
fileAppender.AppendToFile = true;
fileAppender.Layout = new PatternLayout("{%date [%thread] %-5level} - %message%newline");
fileAppender.ActivateOptions();
// 设置log等级
fileAppender.Threshold = log4net.Core.Level.All;
BasicConfigurator.Configure(fileAppender);
}
public static void Debug(string message)
{
log.Debug(message);
}
// 格式化输出log
public static void Debug(string format, params object[] args)
{
log.DebugFormat(format, args);
}
public static void Info(string message)
{
log.Info(message);
}
public static void Warn(string message)
{
log.Warn(message);
}
public static void Error(string message)
{
log.Error(message);
}
public static void Fatal(string message)
{
log.Fatal(message);
}
}
}
测试类
using log4net.Repository.Hierarchy;
namespace test_log4net
{
class Test
{
static void Main(string[] args)
{
Console.WriteLine("Test Log4net");
Logger.Debug("2023 01");
Logger.Info("2023 02");
Logger.Warn("2023 03");
Logger.Error("2023 04");
}
}
}
运行后在D盘会生成log文件。