log4net
一个C#一个写日志的库。参考了好多博客,但是大多数的博客太过于繁琐,都是用在web上的,不太清楚,一个简单教学为什么要搞得如此繁琐。终于找到一篇博客,似乎是港澳台同胞写的,终于跑通了。
链接:https://www.itread01.com/content/1533389896.html
温故而知新,作此笔记。以后用到可以参考。
第一步:安装log4net包。至于怎么安装可以自行百度。安装完最好使用使用using引用一下。实际上本次例子并没有使用到。
using log4net;
第二步:添加这一行代码
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", ConfigFileExtension = "config", Watch = true)]
在这个位置:
第三步:写配置文件log4net.config
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<log4net xsi:noNamespaceSchemaLocation="http://csharptest.net/downloads/schema/log4net.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<root>
<level value="DEBUG"/>
<appender-ref ref="ErrorRollingFileAppender"/>
<appender-ref ref="WarnRollingFileAppender"/>
<appender-ref ref="InfoRollingFileAppender"/>
<appender-ref ref="DebugRollingFileAppender"/>
</root>
<!--一般錯誤日誌定義,用於記錄已知需處理的與未捕獲的異常-->
<!--日誌輸出格式:[時間]:類名 線程號 消息-->
<appender name="ErrorRollingFileAppender" type="log4net.Appender.RollingFileAppender">
<filter type="log4net.Filter.LevelRangeFilter">
<levelMin value="ERROR"/>
<levelMax value="FATAL"/>
</filter>
<filter type="log4net.Filter.DenyAllFilter"/>
<file value="logs\"/>
<rollingStyle value="Date"/>
<datePattern value="yyyy-MM-dd\\"Error.log""/>
<staticLogFileName value="false"/>
<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="[%d{yyyy-MM-dd HH:mm:ss.fff}] %-5p %c.%M %t %n%m%n"/>
</layout>
</appender>
<!--警告日誌定義,用於記錄已知不需處理的異常,系統警告信息-->
<!--日誌輸出格式:[時間]:類名 線程號 消息-->
<appender name="WarnRollingFileAppender" type="log4net.Appender.RollingFileAppender">
<filter type="log4net.Filter.LevelMatchFilter">
<levelToMatch value="WARN"/>
</filter>
<filter type="log4net.Filter.DenyAllFilter"/>
<file value="logs\"/>
<appendToFile value="true"/>
<rollingStyle value="Date"/>
<datePattern value="yyyy-MM-dd\\"Warn.log""/>
<staticLogFileName value="false"/>
<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="[%d{yyyy-MM-dd HH:mm:ss.fff}] %c.%M %t %m%n"/>
</layout>
</appender>
<!--信息日誌定義,用於記錄用戶相關信息-->
<!--日誌輸出格式:[時間]:消息-->
<appender name="InfoRollingFileAppender" type="log4net.Appender.RollingFileAppender">
<filter type="log4net.Filter.LevelMatchFilter">
<levelToMatch value="INFO"/>
</filter>
<filter type="log4net.Filter.DenyAllFilter"/>
<file value="logs\"/>
<appendToFile value="true"/>
<rollingStyle value="Date"/>
<datePattern value="yyyy-MM-dd\\"Info.log""/>
<staticLogFileName value="false"/>
<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="[%d{yyyy-MM-dd HH:mm:ss}] %m%n"/>
</layout>
</appender>
<!--信息日誌定義,用於收集開發調試信息-->
<!--日誌輸出格式:[時間]:類名 線程號 消息-->
<appender name="DebugRollingFileAppender" type="log4net.Appender.RollingFileAppender">
<filter type="log4net.Filter.LevelMatchFilter">
<levelToMatch value="DEBUG"/>
</filter>
<filter type="log4net.Filter.DenyAllFilter"/>
<file value="logs\"/>
<appendToFile value="true"/>
<rollingStyle value="Date"/>
<datePattern value="yyyy-MM-dd\\"Debug.log""/>
<staticLogFileName value="false"/>
<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="[%d{yyyy-MM-dd HH:mm:ss.fff}] %c %t:%m%n"/>
</layout>
</appender>
</log4net>
</configuration>
第五步:测试代码:
using System;
using System.IO;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using log4net;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
namespace LogFile
{
public static class LogHelper
{
/*
private static readonly ILog Logerror = null;
static LogHelper()
{
Logerror = log4net.LogManager.GetLogger("DEBUG");
}
*/ //下面不信就试试上面的。
private static readonly log4net.ILog Logerror = log4net.LogManager.GetLogger("DEBUG");
public static void WriteInfoLog(string info)
{
Logerror.Info(info);
}
public static void WriteErrorLog(string info)
{
Logerror.Error(info);
}
public static void WriteDebugLog(string info)
{
Logerror.Debug(info);
}
public static void WriteDebugLog(Exception exception)
{
Logerror.Debug(exception.Message, exception);
}
}
class Program
{
static void Main(string[] args)
{
LogHelper.WriteDebugLog("1234444445");
}
}
}
这样在exe文件夹下就可以看到
这样就算是完成了。
参考这篇博客的。