关于 log4net 日志功能使用方法

发布时间:2023年12月26日

关于 log4net 日志功能使用方法
所需文件( log4net.config? ??log4net.dll? ??log4net.xml? ?LogHelper.cs)

(1) ?添加dll到自己的项目 ? 在项目树》 ? 右键引用添加 ? 》浏览找到本地准备好的DLL文件 log4net.dll ??
(2)增加配置文件 ? 在项目名称》右键》新建项》找到》应用程序配置文件》将名称修改为 log4Net.config ?>确认添加按钮即可
(3)设置配置文件的属性,特别重要。右击log4net.config ?>属性 ? 》复制到输出目录》选择始终复制或者较新复制,这样才正常
(4)设置Assemblyinfo.cs ?里面增加一行代码 意思是将文件引用进程序?
[assembly: log4net.Config.XmlConfigurator(ConfigFile ="log4net.config",ConfigFileExtension ="config",Watch =true)]
(5)增加Helper类 ? 特别注意: ? 如果不在一个项目内可以修改空间名称 ? 比如放在DAL项目内, ? 那么第4步就需要在DAL下面添加。config配置文件也要放在DAL下面

(6)在BLL里面需要增加静态业务类 LogHelperManager.cs ? 因为各个窗口引用了BLL。所以其他窗口可以直接使用日志功能? ??

LogHelper.Info("普通日志测试");

LogHelper.Error("系统错误日志测试",ex);
代码如下
//***********************************************业务类方法代码*************************************************
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using DAL;

namespace BLL
{
? ? public static class LogHelperManager
? ? {
? ? ? ? public static void Info(string message)
? ? ? ? {
? ? ? ? ? ? LogHelper.Info(message);
? ? ? ? }
? ? ? ? public static void Error(string message, Exception ex)
? ? ? ? {
? ? ? ? ? ? LogHelper.Error(message, ex);
? ? ? ? }
? ? }
}
//***************************************LogHelper类代码******************************************************8
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DAL
{
? ? public class LogHelper
? ? {
? ? ? ? /// <summary>
? ? ? ? /// 普通日志 ? 方法是静态方法 ?名称首字母必须大写
? ? ? ? /// </summary>
? ? ? ? /// <param name="message">日志消息</param>
? ? ? ? public static ?void Info(string message)
? ? ? ? {
? ? ? ? ? ? //先实例化info?
? ? ? ? ? ? ? log4net.ILog log = log4net.LogManager.GetLogger("InfoLog");
? ? ? ? ? ? if (log.IsInfoEnabled)//判断状态
? ? ? ? ? ? {
? ? ? ? ? ? log.Info(message);
? ? ? ? ? ? }
? ? ? ? ? ? log = null;
? ? ? ? }
? ? ? ? public static void Error(string message, Exception ex)
? ? ? ? {
? ? ? ? ? ? log4net.ILog log = log4net.LogManager.GetLogger("Error");//判断日志文件夹是否存在
? ? ? ? ? ? if (log.IsErrorEnabled)?
? ? ? ? ? ? {
? ? ? ? ? ? log.Error(message, ex);
? ? ? ? ? ? }
? ? ? ? ? ? log = null;
? ? ? ??
? ? ? ??
? ? ? ? }

? ? }
}


//***************************config配置文件*************************************
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
?? ?<configSections>
?? ??? ?<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
?? ?</configSections>
?? ?<log4net>
?? ??? ?<root>
?? ??? ?</root>
?? ??? ?<logger name="Error">//等级
?? ??? ??? ?<level value="ALL" />
?? ??? ??? ?<appender-ref ref="ErrorAppender" />
?? ??? ?</logger>
?? ??? ?<logger name="InfoLog">
?? ??? ??? ?<level value="ALL" />
?? ??? ??? ?<appender-ref ref="InfoAppender" />
?? ??? ?</logger>
//修改以下可以修改信息的格式 ? 需要查阅log4net ?官方文档
?? ??? ?<appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender,log4net" >
?? ??? ??? ?<param name="File" type="" value="Log/Error/" />
?? ??? ??? ?<param name="AppendToFile" value="true" />
?? ??? ??? ?<param name="RollingStyle" value="Date" />
?? ??? ??? ?<param name="DatePattern" value="yyyyMMdd&quot;.ini&quot;" />
?? ??? ??? ?<param name="StaticLogFileName" value="false" />
?? ??? ??? ?<layout type="log4net.Layout.PatternLayout,log4net">
?? ??? ??? ??? ?<param name="ConversionPattern" value="%n[%d] %c %n%m%n%n" />
?? ??? ??? ?</layout>
?? ??? ?</appender>
?? ??? ?<appender name="InfoAppender" type="log4net.Appender.RollingFileAppender,log4net" >
?? ??? ??? ?<param name="File" type="" value="Log/Info/" />
?? ??? ??? ?<param name="AppendToFile" value="true" />
?? ??? ??? ?<param name="RollingStyle" value="Date" />
?? ??? ??? ?<param name="DatePattern" value="yyyyMMdd&quot;.ini&quot;" />
?? ??? ??? ?<param name="StaticLogFileName" value="false" />
?? ??? ??? ?<layout type="log4net.Layout.PatternLayout,log4net">
?? ??? ??? ??? ?<param name="ConversionPattern" value="%n[%d] %c %n%m%n%n" />
?? ??? ??? ?</layout>
?? ??? ?</appender>
?? ?</log4net>
</configuration>

文章来源:https://blog.csdn.net/m0_56198081/article/details/135137752
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。