首页 > 解决方案 > 如何使用 log4net.config 指定日志文件路径?

问题描述

在我的 log4net.config 我放

<appender name="Access" type="log4net.Appender.RollingFileAppender">
<file type="log4net.Util.PatternString" value="%envFolderPath{CommonApplicationData}\MyApp\test.txt"/>  

&我的配置代码是

    XmlDocument log4netConfig = new XmlDocument();
    log4netConfig.Load(File.OpenRead("log4net.config"));
    var repo = log4net.LogManager.CreateRepository(Assembly.GetEntryAssembly(),
                               typeof(log4net.Repository.Hierarchy.Hierarchy));

    log4net.Config.XmlConfigurator.Configure(repo, log4netConfig["log4net"]);

但它没有在【C:\ProgramData\MyApp】创建文件。

我也尝试过使用

有任何想法吗。

谢谢!

标签: asp.net-core-2.0log4netlog4net-configurationlog4net-appender

解决方案


在我的机器上工作正常。您可以尝试使用以下步骤对其进行调试:

  1. 尝试将信息记录到 C:\temp 之类的硬编码路径中,以确保您的配置工作正常。
  2. 添加引用以System.Configuration.ConfigurationManager确保所有库都到位
  3. 使用这一行来配置 log4net:

XmlConfigurator.Configure(LogManager.GetRepository(Assembly.GetEntryAssembly()), new FileInfo("log4net.config"));

  1. 确保您有足够的权限写入特殊文件夹。
  2. 使用相同的配置在 .net 核心中创建新的控制台应用程序,并启用内部调试:

log4net.Util.LogLog.InternalDebugging = true;

你会看到到底发生了什么。您将看到您的应用程序正在使用哪些路径,并且您将看到在内部 log4net 配置期间发生的任何错误。


推荐阅读