使用C#日志系统框架Log4Net

文章介绍了如何在C#应用中配置和使用log4net框架来实现日志记录,包括配置log4net.config文件以定义控制台和文件两种日志输出方式,以及在代码中如何调用LogHelper进行不同级别的日志写入。
摘要由CSDN通过智能技术生成

C#日志系统框架Log4Net

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

log4net.config

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
	<configSections>
		<section name="log4net" type="System.Configuration.IgnoreSectionHandler"/>
	</configSections>
	<log4net>
		<!--配置日志的目标存储形式-->
		<root>
			<!--输出等级-->
			<level value="ALL" />
			<!--控制台形式-->
			<appender-ref ref="ConsoleAppender" />
			<!--文件形式-->
			<appender-ref ref = "FileAppender" />
		</root>
		
		<!--控制台形式-->
		<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
			<layout type="log4net.Layout.PatternLayout" value="%date [%thread] %-5level %logger - %message%newline" />
		</appender>
		
		<!--文件形式-->
		<appender name="FileAppender" type="log4net.Appender.FileAppender" >
			<!--文件路径-->
			<file value = "Log/log-file.txt" />
		    <!--是否追加-->
		    <appendToFile value = "true" />
		    <!--显示格式-->
			<layout type = "log4net.Layout.PatternLayout" >
			<conversionPattern value = "%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
            </layout >
		</appender>
		
		<appender name="ColoredConsoleAppender" type="log4net.Appender.ColoredConsoleAppender">
		</appender>
	</log4net>
</configuration>

将log4net属性设置为始终复制

在这里插入图片描述

在这里插入图片描述

在 AssemblyInfo.cs 中添加一行代码

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", ConfigFileExtension = "config", Watch = true)]

在这里插入图片描述

    public class LogHelper
    {
        /// <summary>
        /// 日志记录类
        /// </summary>

            #region 记录日志
            /// <summary>
            /// 记录日志
            /// </summary>
            /// <param name="legLevel">日志级别</param>
            /// <param name="msg">日志内容</param>
            public static void LoggerMsg(LogLevel legLevel, string msg)
            {
                log4net.ILog log = GetLogger();
                switch (legLevel)
                {
                    case LogLevel.Debug: log.Debug(msg); break; //Debug
                    case LogLevel.Error: log.Error(msg); break; //Error
                    case LogLevel.Fatal: log.Fatal(msg); break; //Fatal
                    case LogLevel.Info: log.Info(msg); break; //Info
                    case LogLevel.Warn: log.Warn(msg); break; //Warn
                    default: break;
                }
                // 同步解析数据msg可以放置到不同的显示组件中
                // ****
                 
            }
            #endregion
            #region 获得一个日志记录对象
            /// <summary>
            /// 获得一个日志记录对象
            /// </summary>
            /// <returns>日志记录对象</returns>
            public static log4net.ILog GetLogger()
            {
                //MethodBase.GetCurrentMethod().DeclaringType 返回:命名空间名+类名
                return log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
            }
            #endregion
        }
        /// <summary>
        /// 日志记录级别
        /// </summary>
        public enum LogLevel
        {
            Debug,
            Info,
            Warn,
            Error,
            Fatal,
        }
    
public FrmMain()
{
    InitializeComponent();
    LogHelper.LoggerMsg(LogLevel.Info, "hello,log4net!");

}

在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值