- Log4net入门(简要介绍)
- 1 使用Visual Studio创建一个控制台应用
- 2 在Nuget中下载log4net
- 3.增加App.config(app.config)配置文件
- 4 增加工具类和默认配置
- 5 测试
Log4net是Apache公司的log4j™的.NET版本,用于帮助.NET开发人员将日志信息输出到各种不同的输出源(Appender),常见的输出源包括控制台、日志文件和数据库等。本篇主要讨论如何在控制台应用程序中将日志文件输出到控制台、日志文件和SQL Server数据库中。
1 使用Visual Studio创建一个控制台应用 2 在Nuget中下载log4net 3.增加App.config(app.config)配置文件
注意,一定要叫App.config或者app.config,不然程序识别不到
具体的配置可以查看资料,:
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
configSections>
<log4net>
<root>
<level value="ALL" />
<appender-ref ref="RollingFileAppender" />
<appender-ref ref="ConsoleAppender" />
root>
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="Log/" />
<appendToFile value="true" />
<RollingStyle value="Composite" />
<MaxSizeRollBackups value="-1" />
<datePattern value="yyyy-MM"/"yyyyMMdd".txt"" />
<staticLogFileName value="false" />
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<maximumFileSize value="2MB" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%t]%-5p %c - %m%n" />
layout>
appender>
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
layout>
appender>
log4net>
configuration>
4 增加工具类和默认配置
新建Logger.cs
using System.Diagnostics;
using log4net.Config;
using System.Reflection;
using System.Text;
using log4net;
namespace ConsoleApp1
{
public class Logger
{
Logger(ILog log)
{
this._log = log;
}
private readonly log4net.ILog _log;
// 静态代码块
static Logger()
{
Console.WriteLine("初始化日志配置完成");
XmlConfigurator.Configure();
}
// 静态工具方法
public static Logger GetLogger(Type? type)
{
// log4net.LogManager.GetLogger(Type type)
// - type:System.Reflection.MethodBase.GetCurrentMethod()?.DeclaringType
// - 含义是自动获取使用该日志的类名,然后打印显示或者存在文件内,比如名为Test.cs的类使用了日志功能,那么获取到的就是Test
// 2022-04-21 17:09:52,836 [1] ERROR Test - a
log4net.ILog log = log4net.LogManager.GetLogger(type);
Logger logger = new Logger(log);
return logger;
}
///
/// 输出信息日志
///
/// 消息
public void info(string message)
{
if (_log.IsInfoEnabled)
{
_log.Info(message);
}
}
///
/// 输出调试日志
///
/// 调试信息
public void debug(string message)
{
if (_log.IsDebugEnabled)
{
_log.Debug(message);
}
}
///
/// 输出调试日志
///
/// 异常信息
public void debug(Exception ex)
{
if (_log.IsDebugEnabled)
{
_log.Debug(ex.Message + "/r/n" + ex.Source + "/r/n" +
ex.TargetSite + "/r/n" + ex.StackTrace);
}
}
///
/// 输出错误日志
///
/// 消息
/// 错误信息
public void error(string message)
{
if (_log.IsErrorEnabled)
{
_log.Error(message);
}
}
///
/// 输出错误日志
///
/// 错误信息
public void error(Exception ex)
{
if (_log.IsErrorEnabled)
{
_log.Error(ex.Message, ex);
}
}
///
/// 输出错误日志
///
/// 消息
/// 错误信息
public void error(string message, Exception ex)
{
if (_log.IsErrorEnabled)
{
_log.Error(message, ex);
}
}
}
}
5 测试
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)