c# - log4net 将在哪里创建这个日志文件?

标签 c# asp.net-mvc logging log4net

当我将文件值设置为 logs\log-file.txt 时,它究竟会在哪里创建这个文件夹?在/bin目录下?

我的 web.config 看起来像这样:

<log4net>
    <appender name="FileAppender" type="log4net.Appender.FileAppender">
      <file value="logs\log-file.txt" />
      <appendToFile value="true" />
      <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
      </layout>
    </appender>
</log4net>

这是正确的记录方式吗:

ILog logger = LogManager.GetLogger(typeof(CCController));
logger.Error("Some Page", ex);  // where ex is the exception instance

最佳答案

如果您希望将日志文件放置在指定位置,该位置将在运行时决定,可能是您的项目输出目录,那么您可以以这种方式配置您的 .config 文件条目

<file type="log4net.Util.PatternString" value="%property{LogFileName}.txt" />

然后在调用log4net configure之前的代码中,设置如下新路径

 log4net.GlobalContext.Properties["LogFileName"] = @"E:\\file1"; //log file path
 log4net.Config.XmlConfigurator.Configure();

有多简单? :)

关于c# - log4net 将在哪里创建这个日志文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2815940/

相关文章:

asp.net-mvc - Sitecore 多站点 MVC 解决方案

logging - 流口水日志文件

c# - 在分离场景中使用独立关联时更新一对多实体

c# - 我需要正模数来进行数组索引迭代

javascript - 从不同域加载网页

c# - 如何根据条件更改模型的可编辑属性

python - 为什么RotatingFileHandler不继承日志格式?

hibernate - Grails “stuck”始终记录所有SQL查询

c# - 确定是否安装了 ReportViewer 的最佳方法

c# - 无法在 .NET Core 中加载文件或程序集 'System.Runtime, Version=4.1.0.0'