You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

log4net无法记录/创建日志文件:C#控制台应用问题求助

C#控制台应用log4net日志功能无法正常工作的排查方案

我在自主开发的C#控制台应用中尝试使用log4net实现日志记录功能,但该功能无法正常工作,不确定遗漏了哪些配置细节,希望得到帮助。

相关信息

1. Program.cs代码

using System;

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config")]

public class SearchCardsML
{
    private static readonly log4net.ILog logger = 
                        log4net.LogManager.GetLogger
        (System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
    public static void Main(string[] args)
    {
        logger.Info("Started....");
    }
}

2. 其他相关文件

  • log4net.config配置文件(附截图)
  • 项目目录结构(附截图)

常见排查要点

  • 配置文件输出属性:检查log4net.config的「复制到输出目录」属性,必须设置为「始终复制」或「如果较新则复制」,否则程序运行时无法读取到配置文件。
  • 手动触发配置加载:可以替换Assembly级别的XmlConfigurator特性,在Main方法开头手动执行配置加载,避免特性加载时机问题:
    log4net.Config.XmlConfigurator.Configure(new System.IO.FileInfo("log4net.config"));
    
  • 配置文件语法校验:确认log4net.config的XML结构正确,根节点为<log4net>,已正确配置Appender(如文件输出、控制台输出)及对应的Layout格式,且日志输出级别设置正确。
  • 日志级别检查:确保根Logger的级别设置包含INFO,例如:
    <root>
      <level value="INFO" />
    </root>
    
    若级别设为WARN及以上,INFO级别的日志不会被输出。
  • NuGet包引用:确认项目已通过NuGet安装log4net包,避免手动添加dll导致的版本不兼容或引用缺失问题。

内容的提问来源于stack exchange,提问作者user3449580

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 15:02:07