一、作用
提供一个记录日志的框架,可以将日志信息记录到文件、控制台、Windows事件日志和数据库(MSSQL、Acess、Oracle、DB2和SQLite等)。
二、操作步骤
1.在项目中添加对log4net.dll的引用(通过NuGet可以直接安装)
2.在工程目录下找到App.config文件,用记事本将其打开
将以下代码将其替换
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<!--Add Log4Net Section-->
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
<log4net>
<appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="LOG/system.log"/>
<param name="AppendToFile" value="true"/>
<rollingStyle value="Size"/>
<maxSizeRollBackups value="10"/>
<maximumFileSize value="10MB"/>
<staticLogFileName value="true"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%n%date 【%p】 %message"/>
</layout>
</appender>
<logger name="LogTrace">
<level value="ALL"/>
<appender-ref ref="LogFileAppender"/>
</logger>
</log4net>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
</startup>
</configuration>
在vs中选择App.config属性,将其复制到输出目录改为如果较新则复制
3.添加CS文件,CS文件中代码如下
using log4net;
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "App.config", Watch = false)]
//文件里添加下面代码,让程序启动时是找到App.config配置文件
namespace ScaipMDAS
{
public static class LogHelper
{
static readonly ILog _logger = LogManager.GetLogger("LogTrace");
public static void Info(string message)
{
_logger.Info(message); //打印事件
}
public static void Debug(string message)
{
_logger.Debug(message); //调试
}
public static void Warn(string message)
{
_logger.Warn(message); //警告
}
public static void Error(string message)
{
_logger.Error(message); //错误
}
}
}
4.在窗体界面中添加按钮,并给他赋予点击事件,其中点击事件的代码如下:
private void button1_Click(object sender, EventArgs e)
{
LogHelper.Info("日志打印");
LogHelper.Debug("日志调试");
LogHelper.Error("日志错误");
LogHelper.Warn("日志警告");
}
5.运行,并点击按钮,你会发现在项目的debug文件夹下出现LOG文件夹
如果没有出现,修改配置文件中的语句即可:将你创建的CS文件中第三行语句改变。
为什么出现这种情况呢:
XmlConfigurator可配置三个属性:
- ConfigFile:配置文件的路径及文件名,包括扩展名,文件相对于程序的根目录。注意:这个属性不能和 ConfigFileExtension 属性同时使用。
- ConfigFileExtension:配置文件的后缀名,缺省的文件扩展名为”config”。这个属性不能和 ConfigFile 属性同时使用。
- Watch (Boolean属性): 如果为true,log4net框架在运行时监视文件。如果配置文件修改被修改了,将会重新读取。
XmlConfigurator 配置例子:
假设程序名称为TestApp
// 配置 log4net 使用 .config 后缀文件
// log4net将会在程序根目录查找配置文件 TestApp.exe.config
// 文件 TestApp.exe.config 被log4net监视是否被修改,
//如果修改了TestApp.exe.config文件, log4net自动重新加载
[assembly: log4net.Config.XmlConfigurator(Watch=true)]
// 配置 log4net 使用 .log4net 后缀文件
// log4net将会在程序根目录查找配置文件 TestApp.exe.log4net
// 文件 TestApp.exe.log4net 被log4net监视是否被修改,
//如果修改了TestApp.exe.config文件, log4net自动重新加载
[assembly: log4net.Config.XmlConfigurator(ConfigFileExtension=“log4net”,Watch=true)]
3 app.config 中的 appSettings 配置
- key 为 log4net.Config 的setting 会覆盖 assembly XmlConfigurator 配置 中 ConfigFile 指定的值
- key 为 log4net.Config.Watch 的setting 会覆盖 assembly XmlConfigurator 配置 中 Watch 指定的值
// 有 assembly 配置
[assembly: log4net.Config.XmlConfigurator(Watch=false)]
//上面的assemble配置使使用配置文件 “TestApp.exe.config”,并且不监视。
//下面的配置覆盖assemble配置,使用配置文件 log4net.config, 并且监视该文件
// appSettings 配置
配置错误的解释链接: https://developer.aliyun.com/article/61899
这时再运行就会成功了,点击LOG文件夹中的文件,查看日志记录
可以根据你项目的程序,进行添加日志打印的记录了
自己还可以尝试添加地址,添加IP,添加注释等等等