ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

C#使用log4net打日志

2022-02-26 12:03:03  阅读:278  来源: 互联网

标签:log4net Info C# static ex msg 日志


首先打开vs,右击解决方案,点击管理解决方案的Nuget包管理

然后我们点击浏览,搜索log4net,进行安装

然后我们需要新建一个名为log4net.config的配置文件,在配置文件中,加入以下代码

	<configSections>
		<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
	</configSections>
	<log4net>
		<!--错误日志-->
		//
		<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
			<!-- 日志文件存放位置,可以为绝对路径也可以为相对路径 -->
			<file value="log\\LogError\\" />
			<!--是否支持分割文件-->
			<appendToFile value="true" />
			<!--日志文件的记录形式-->
			<rollingStyle value="Date" />
			<!-- 日志文件的命名规则 -->
			<datePattern value="yyyy\\yyyyMM\\yyyyMMdd'.txt'" />
			<!-- 当将日期作为日志文件的名字时,必须将staticLogFileName的值设置为false -->
			<staticLogFileName value="false" />
			<!--当日志文件达到MaxFileSize大小,就自动创建备份文件。-->
			<param name="MaxSizeRollBackups" value="100" />
			<!--日志文件的布局格式-->
			<layout type="log4net.Layout.PatternLayout">
				<!--每条日志末尾的文字说明-->
				<!--输出格式-->
				<!--样例:2008-03-26 13:42:32,111 [10] INFO  Log4NetDemo.MainClass [(null)] - info-->
				<conversionPattern value="%newline %n记录时间:%date %n线程ID:[%thread] %n日志级别:  %-5level %n错误描述:%message%newline %n" />
			</layout>
		</appender>

		<!--Info日志-->
		<appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
			<param name="File" value="Log\\LogInfo\\" />
			<param name="AppendToFile" value="true" />
			<param name="MaxFileSize" value="10240" />
			<param name="MaxSizeRollBackups" value="100" />
			<param name="StaticLogFileName" value="false" />
			<param name="DatePattern" value="yyyy\\yyyyMM\\yyyyMMdd'.txt'" />
			<param name="RollingStyle" value="Date" />
			<layout type="log4net.Layout.PatternLayout">
				<conversionPattern value="%newline %n记录时间:%date %n线程ID:[%thread] %n日志级别:  %-5level %n日志描述:%message%newline %n" />
			</layout>
		</appender>

		<!--监控日志-->
		<appender name="MonitorAppender" type="log4net.Appender.RollingFileAppender">
			<param name="File" value="Log\\LogMonitor\\" />
			<param name="AppendToFile" value="true" />
			<param name="MaxFileSize" value="10240" />
			<param name="MaxSizeRollBackups" value="100" />
			<param name="StaticLogFileName" value="false" />
			<param name="DatePattern" value="yyyy\\yyyyMM\\yyyyMMdd'.txt'" />
			<param name="RollingStyle" value="Date" />
			<layout type="log4net.Layout.PatternLayout">
				<conversionPattern value="%newline %n记录时间:%date %n线程ID:[%thread] %n日志级别:  %-5level %n跟踪描述:%message%newline %n" />
			</layout>
		</appender>

		<!--Error日志-->
		<logger name="LogError">
			<level value="ERROR" />
			<appender-ref ref="RollingLogFileAppender" />
		</logger>

		<!--Info日志-->
		<logger name="LogInfo">
			<level value="INFO" />
			<appender-ref ref="InfoAppender" />
		</logger>

		<!--监控日志-->
		<logger name="LogMonitor">
			<level value="Monitor" />
			<appender-ref ref="MonitorAppender" />
		</logger>
	</log4net>

更改配置文件的"复制到输出目录"这个属性为"始终复制"

 

 接下来我们找到AssemblyInfo.cs这个类,在这个类中加入一行代码

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

 然后在我们项目文件下新建一个名为LoggerHelper的类,代码如下

public class LoggerHelper
    {
        private static readonly log4net.ILog LogInfo = log4net.LogManager.GetLogger("LogInfo");

        private static readonly log4net.ILog LogError = log4net.LogManager.GetLogger("LogError");

        private static readonly log4net.ILog LogMonitor = log4net.LogManager.GetLogger("LogMonitor");

        /// <summary>
        /// 记录Error日志
        /// </summary>
        /// <param name="errorMsg"></param>
        /// <param name="ex"></param>
        public static void Error(string errorMsg, Exception ex = null)
        {
            if (ex != null)
            {
                LogError.Error(errorMsg, ex);
            }
            else
            {
                LogError.Error(errorMsg);
            }
        }

        /// <summary>
        /// 记录Info日志
        /// </summary>
        /// <param name="msg"></param>
        /// <param name="ex"></param>
        public static void Info(string msg, Exception ex = null)
        {
            if (ex != null)
            {
                LogInfo.Info(msg, ex);
            }
            else
            {
                LogInfo.Info(msg);
            }
        }

        /// <summary>
        /// 记录Monitor日志
        /// </summary>
        /// <param name="msg"></param>
        public static void Monitor(string msg)
        {
            LogMonitor.Info(msg);
        }
    }

 接下来我们直接在需要打日志的地方调用LoggerHelper类中的方法就可以了

 

标签:log4net,Info,C#,static,ex,msg,日志
来源: https://blog.csdn.net/wmj20001225/article/details/123147535

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有