温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

log4net的使用方法

发布时间:2021-07-06 10:23:58 来源:亿速云 阅读:128 作者:chen 栏目:大数据

这篇文章主要介绍“log4net的使用方法”,在日常操作中,相信很多人在log4net的使用方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”log4net的使用方法”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

使用log4net打印日志很方便,以前我都是自己写日志功能,把错误信息写入到指定文件,使用log4net就省略了这些工作,挺方便的。

使用log4net需要在.config文件中进行配置

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <!--log4net配置节点-->
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
  </configSections>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
  </startup>
  <log4net debug="false">
    <!--普通日志配置-->
    <appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
      <param name="File" value="D:\MyWebLog\LogInfo\" />
      <param name="AppendToFile" value="true" />
      <param name="MaxSizeRollBackups" value="100" />
      <param name="MaxFileSize" value="10240" />
      <param name="StaticLogFileName" value="false" />
      <param name="DatePattern" value="yyyyMMdd&quot;.txt&quot;" />
      <param name="RollingStyle" value="Date" />
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="%n日志时间:%d %n日志级别:%-5p%n日志内容:%m%n" />
      </layout>
    </appender>

    <!--异常信息配置-->
    <appender name="DebugAppender" type="log4net.Appender.RollingFileAppender">
      <param name="File" value="D:\MyWebLog\DebugError\" />
      <param name="AppendToFile" value="true" />
      <param name="MaxSizeRollBackups" value="100" />
      <param name="MaxFileSize" value="10240" />
      <param name="StaticLogFileName" value="false" />
      <param name="DatePattern" value="yyyyMMdd&quot;.txt&quot;" />
      <param name="RollingStyle" value="Date" />
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="%n异常时间:%d %n异常级别:%-5p%n异常内容:%m%n" />
      </layout>
    </appender>

    <!--错误日志配置-->
    <appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">
      <param name="File" value="D:\MyWebLog\LogError\" />
      <param name="AppendToFile" value="true" />
      <param name="MaxSizeRollBackups" value="100" />
      <param name="MaxFileSize" value="10240" />
      <param name="StaticLogFileName" value="false" />
      <param name="DatePattern" value="yyyyMMdd&quot;.txt&quot;" />
      <param name="RollingStyle" value="Date" />
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="%n错误时间:%d %n错误级别:%-5p%n错误内容:%m%n" />
      </layout>
    </appender>

    <!--致命错误配置-->
    <appender name="FatalAppender" type="log4net.Appender.RollingFileAppender">
      <param name="File" value="D:\MyWebLog\LogFatal\" />
      <param name="AppendToFile" value="true" />
      <param name="MaxSizeRollBackups" value="100" />
      <param name="MaxFileSize" value="10240" />
      <param name="StaticLogFileName" value="false" />
      <param name="DatePattern" value="yyyyMMdd&quot;.txt&quot;" />
      <param name="RollingStyle" value="Date" />
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="%n致命错误时间:%d %n致命错误级别:%-5p%n致命错误内容:%m%n" />
      </layout>
    </appender>

    <!--警告信息配置-->
    <appender name="WarnAppender" type="log4net.Appender.RollingFileAppender">
      <param name="File" value="D:\MyWebLog\LogWarn\" />
      <param name="AppendToFile" value="true" />
      <param name="MaxSizeRollBackups" value="100" />
      <param name="MaxFileSize" value="10240" />
      <param name="StaticLogFileName" value="false" />
      <param name="DatePattern" value="yyyyMMdd&quot;.txt&quot;" />
      <param name="RollingStyle" value="Date" />
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="%n警告时间:%d %n警告级别:%-5p%n警告内容:%m%n" />
      </layout>
    </appender>
    
    <!--普通日志-->
    <logger name="LogInfo">
      <level value="Info" />
      <appender-ref ref="InfoAppender" />
    </logger>
    
    <!--异常信息-->
    <logger name="LogDebug">
      <level value="Debug" />
      <appender-ref ref="DebugAppender" />
    </logger>
    
    <!--错误日志-->
    <logger name="LogError">
      <level value="Error" />
      <appender-ref ref="ErrorAppender" />
    </logger>
    
    <!--致命错误-->
    <logger name="LogFatal">
      <level value="Fatal" />
      <appender-ref ref="FatalAppender" />
    </logger>
    
    <!--警告信息-->
    <logger name="LogWarn">
      <level value="Warn" />
      <appender-ref ref="WarnAppender" />
    </logger>
    
  </log4net>
</configuration>
 

配置文件可以使用项目中默认的配置文件,也可以新建.config。

1.使用默认的配置文件

AssemblyInfo.cs中添加[assembly: log4net.Config.XmlConfigurator()],系统在运行时寻找去默认的配置文件中查找log4net的配置节点

 写一个帮助类,使用单例模式创建日志对象

    /// <summary>
    /// log4net帮助类
    /// </summary>
    public class LogHelper
    {
        private static ILog logInfo = null;//普通日志
        private static ILog logDebug = null;//异常信息
        private static ILog logError = null;//错误日志
        private static ILog logFatal = null;//致命错误
        private static ILog logWarn = null;//警告信息

        private LogHelper() { }

        /// <summary>
        /// 普通日志
        /// </summary>
        /// <returns></returns>
        public static ILog GetLogInfo()
        {
            if(logInfo == null)
            {
                logInfo = LogManager.GetLogger("LogInfo");
            }
            return logInfo;
        }

        /// <summary>
        /// 异常信息
        /// </summary>
        /// <returns></returns>
        public static ILog GetLogDebug()
        {
            if (logDebug == null)
            {
                logDebug = LogManager.GetLogger("LogDebug");
            }
            return logDebug;
        }

        /// <summary>
        /// 错误日志
        /// </summary>
        /// <returns></returns>
        public static ILog GetLogError()
        {
            if (logError == null)
            {
                logError = LogManager.GetLogger("LogError");
            }
            return logError;
        }


        /// <summary>
        /// 致命错误
        /// </summary>
        /// <returns></returns>
        public static ILog GetLogFatal()
        {
            if (logFatal == null)
            {
                logFatal = LogManager.GetLogger("LogFatal");
            }
            return logFatal;
        }


        /// <summary>
        /// 警告信息
        /// </summary>
        /// <returns></returns>
        public static ILog GetLogWarn()
        {
            if (logWarn == null)
            {
                logWarn = LogManager.GetLogger("LogWarn");
            }
            return logWarn;
        }
    }

调用:

LogHelper.GetLogInfo().Info("输出信息");

LogHelper.GetLogError().Error("",new Exception());

2.使用新创建的配置文件

public static readonly ILog logInfo = LogManager.GetLogger("LogInfo");//普通日志
public static readonly ILog logDebug = LogManager.GetLogger("LogDebug");//异常信息
public static readonly ILog logError = LogManager.GetLogger("LogError");//错误日志
public static readonly ILog logFatal = LogManager.GetLogger("LogFatal");//致命错误
public static readonly ILog logWarn = LogManager.GetLogger("LogWarn");//警告信息

手动查找路径下的配置文件,进行读取,添加一下代码

/// <summary>
/// 加载log4net的日志配置文件
/// </summary>
/// <param name="configFilePath">日志配置文件的完整路径</param>
public LogHelper(string configFilePath)
{
    if (string.IsNullOrWhiteSpace(configFilePath) || !File.Exists(configFilePath))
    {
        throw new ArgumentNullException("日志配置文件不存在");
    }
        XmlConfigurator.Configure(new FileInfo(configFilePath));
}

调用:

LogHelper.logInfo.Info("输出信息");
LogHelper.logError.Error("输出信息", new Exception());

到此,关于“log4net的使用方法”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI