Visual Studio配置log4net

本文详细介绍如何在Visual Studio中配置log4net进行日志记录,包括添加引用、配置文件设置、添加Log类及常见问题解决,适用于.NET应用程序的日志管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Visual Studio配置log4net

添加Log4.net.dll的引用

在这里插入图片描述

添加配置

  • AssemblyInfo.cs
[assembly: log4net.Config.XmlConfigurator(ConfigFileExtension = "config", Watch = true)]
  • Web.config配置
<configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, 
log4net"/>
    <sectionGroup name="common">
      <section name="logging" type="Common.Logging.ConfigurationSectionHandler, 
Common.Logging"/>
    </sectionGroup>
  </configSections>
<log4net debug="true">
    <appender name="RollingLogFileAppender" 
type="log4net.Appender.RollingFileAppender,log4net">
      <lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
      <file value="log\\"/>
      <appendToFile value="true"/>
      <rollingStyle value="Date"/>
      <datePattern value="yyyy/yyyy-MM/yyyy-MM-dd&quot;.txt&quot;"/>
      <maxSizeToRollBackups value="10"/>
      <maximumFileSize value="3MB"/>
      <staticLogFileName value="false"/>
      <layout type="log4net.Layout.PatternLayout,log4net">
        <param name="ConversionPattern" value="%d%m%n"/>
      </layout>
    </appender>
    <root>
      <level value="ALL"/>
      <appender-ref ref="RollingLogFileAppender"/>
    </root>
  </log4net>
  • log4net_config.xml配置
<?xml version="1.0" encoding="utf-8" ?>
<log4net>
  <appender name="TastInfo" type="log4net.Appender.RollingFileAppender">
    <file value="Log\\Info\\" />
    <appendToFile value="true" />
    <rollingStyle value="Composite" />
    <maxSizeRollBackups value="-1" />
    <maximumFileSize value="1MB" />
    <staticLogFileName value="false" />
    <DatePattern value="yyyy-MM-dd&quot;.txt&quot;"/>
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date  %-5level  - %message%newline" />
    </layout>
  </appender>
  <appender name="TastError" type="log4net.Appender.RollingFileAppender">
    <file value="log\\Error\\" />
    <appendToFile value="true" />
    <rollingStyle value="Composite" />
    <maxSizeRollBackups value="-1" />
    <maximumFileSize value="1MB" />
    <staticLogFileName value="false" />
    <DatePattern value="yyyy-MM-dd&quot;.txt&quot;"/>
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date  %-5level - %message%newline" />
    </layout>
  </appender>
  <appender name="TastDebug" type="log4net.Appender.RollingFileAppender">
    <file value="log\\Debug\\" />
    <appendToFile value="true" />
    <rollingStyle value="Composite" />
    <maxSizeRollBackups value="-1" />
    <maximumFileSize value="1MB" />
    <staticLogFileName value="false" />
    <DatePattern value="yyyy-MM-dd&quot;.txt&quot;"/>
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date  %-5level - %message%newline" />
    </layout>
  </appender>
  <logger name="Info">
    <level value="ALL"/>
    <appender-ref ref="Info" />
    <appender-ref ref="TastInfo" />
  </logger>
  <logger name="Error">
    <level value="ALL"/>
    <appender-ref ref="Error" />
    <appender-ref ref="TastError" />
  </logger>
  <logger name="Debug">
    <level value="ALL"/>
    <appender-ref ref="Debug" />
    <appender-ref ref="TastDebug" />
  </logger>
</log4net>


添加Log类

public class Log
    {
        private const string SError = "Error";
        private const string SDebug = "Debug";
        private const string DefaultName = "Info";
        static Log()
        {
            var path = AppDomain.CurrentDomain.BaseDirectory + @"\log4net_config.xml";
            log4net.Config.XmlConfigurator.Configure(new FileInfo(path));
        }
        public static log4net.ILog GetLog(string logName)
        {
            var log = log4net.LogManager.GetLogger(logName);
            return log;
        }
        public static void Debug(string message)
        {
            var log = log4net.LogManager.GetLogger(SDebug);
            if (log.IsDebugEnabled)
                log.Debug(message);
        }
        public static void Debug(string message, Exception ex)
        {
            var log = log4net.LogManager.GetLogger(SDebug);
            if (log.IsDebugEnabled)
                log.Debug(message, ex);
        }
        public static void Error(string message)
        {
            var log = log4net.LogManager.GetLogger(SError);
            if (log.IsErrorEnabled)
                log.Error(message);
        }
        public static void Error(string message, Exception ex)
        {
            var log = log4net.LogManager.GetLogger(SError);
            if (log.IsErrorEnabled)
                log.Error(message, ex);
        }
        public static void Fatal(string message)

        {
            var log = log4net.LogManager.GetLogger(DefaultName);
            if (log.IsFatalEnabled)
                log.Fatal(message);
        }
        public static void Info(string message)
        {
            log4net.ILog log = log4net.LogManager.GetLogger(DefaultName);
            if (log.IsInfoEnabled)
                log.Info(message);
        }
        public static void Warn(string message)

        {
            var log = log4net.LogManager.GetLogger(DefaultName);
            if (log.IsWarnEnabled)
                log.Warn(message);
        }
    }

发布并查看结果

在这里插入图片描述

常见问题:配置好了并没有在目录下创建LOG文件夹并增加日志信息(因为配置文件没有复制到输出目录)

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值