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,例如:
若级别设为WARN及以上,INFO级别的日志不会被输出。<root> <level value="INFO" /> </root> - NuGet包引用:确认项目已通过NuGet安装log4net包,避免手动添加dll导致的版本不兼容或引用缺失问题。
内容的提问来源于stack exchange,提问作者user3449580
相关产品推荐
相关产品推荐

