前言
记录学习成果,以便温故而知新1.安装包
NuGet安装log4net
2.配置文件
log4net.config文件内容:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="System.Configuration.IgnoreSectionHandler"/>
</configSections>
<appSettings>
</appSettings>
<log4net>
<!--定义输出到文件中-->
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="log/logfile.txt" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<datePattern value="yyyyMMdd-HHmm'.log'" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="1MB" />
<layout type="log4net.Layout.PatternLayout">
<!--
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
-->
<header value="by Antonio " />
<conversionPattern value="%d %p %F(%L)-%c.%M>%message%newline" />
<footer value="by Antonio " />
</layout>
</appender>
<!--定义输出到控制台命令行中-->
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
<layout type="log4net.Layout.PatternLayout">
<!--
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
-->
<conversionPattern value="%d %p %F(%L)-%c.%M>%message%newline" />
</layout>
</appender>
<!--定义输出到数据库表中-->
<appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">
<bufferSize value="1" />
<connectionType value="MySql.Data.MySqlClient.MySqlConnection, MySql.Data" />
<connectionString value="server=localhost;database=test;Uid=root;Pwd=root;" />
<commandText value="INSERT INTO t_log (log_date, thread, log_level, logger, message, exception) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)" />
<parameter>
<parameterName value="@log_date" />
<dbType value="DateTime" />
<layout type="log4net.Layout.RawTimeStampLayout" />
</parameter>
<parameter>
<parameterName value="@thread" />
<dbType value="String" />
<size value="255" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%thread" />
</layout>
</parameter>
<parameter>
<parameterName value="@log_level" />
<dbType value="String" />
<size value="50" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%level" />
</layout>
</parameter>
<parameter>
<parameterName value="@logger" />
<dbType value="String" />
<size value="255" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%logger" />
</layout>
</parameter>
<parameter>
<parameterName value="@message" />
<dbType value="String" />
<size value="4000" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%message" />
</layout>
</parameter>
<parameter>
<parameterName value="@exception" />
<dbType value="String" />
<size value="2000" />
<layout type="log4net.Layout.ExceptionLayout" />
</parameter>
</appender>
<!--定义日志的输出媒介,下面定义日志以四种方式输出。也可以下面的按照一种类型或其他类型输出。-->
<root>
<!--文件形式记录日志-->
<appender-ref ref="RollingLogFileAppender" />
<!--控制台控制显示日志-->
<appender-ref ref="ConsoleAppender" />
<!--数据库记录日志-->
<appender-ref ref="AdoNetAppender" />
</root>
</log4net>
</configuration>
复制到项目目录下,设置“文件属性”=>“复制到输出目录”=>“如果较新则复制”或“始终复制”,反正要保证编译生成目录中有这个文件。
3.设置AssemblyInfo.cs
项目目录=>Properties=>AssemblyInfo.cs中添加
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]
4.代码调用
///字段
private static readonly ILog _log = LogManager.GetLogger(typeof(Form1));
///方法中调用
_log.Debug("Debug");
_log.Fatal("Fatal");
_log.Error("Error");
_log.Warn("Warn");
_log.Info("Info");