【问题标题】:log4net not logging when the exe is running from startup but works fine when started manually当 exe 从启动时运行时 log4net 不记录,但在手动启动时工作正常
【发布时间】:2019-04-23 10:14:36
【问题描述】:

当应用程序从注册表启动运行时,log4net 不会生成日志文件,也不会将日志写入文件。但是当手动执行应用程序时,会创建文件。

启动注册表项在路径“[HKEY_LOCAL_USER\Software\Microsoft\Windows\CurrentVersion\Run”中创建。当用户登录机器时,应用程序必须自动运行。 所有日志配置都有一个单独的 log4net.config 文件 日志文件在用户漫游配置文件中创建。 尝试的事情: 1. 我尝试保存在一些通用路径中,例如 (C:\logs\app) 仍然没有创建日志。 2. 从用户上下文和管理员权限的命令提示符下运行 .exe,没有用。

Log4net 配置

 <log4net>
     <appender name="RollingLogFileAppender" 
       type="log4net.Appender.RollingFileAppender">
     <file value="${APPDATA}\app\app.txt"/>
     <appendToFile value="true" />
     <rollingStyle value="Date"/>
     <rollInterval value="Week"/>
     <DatePattern value="'.'yyyy-MM-dd'.log'"/>
     <rollSizeKB value="50000"/>
     <preserveLogFileNameExtension value="true" />
     <countDirection value="1" />
     <staticLogFileName value="true" />
     <layout type="log4net.Layout.PatternLayout">
     <conversionPattern value="[%date{dd MMM yyyy HH:mm:ss}] [%-5level] 
     [%-5.70logger] - %message%newline"/>
     </layout>
    </appender>
    <root>
     <level value="ALL" />
     <appender-ref ref="RollingLogFileAppender" />
    </root>
   </log4net>

初始化配置

log4net.Config.XmlConfigurator.Configure(new FileInfo("log4net.config"));

我希望在路径 C:\Users[User]\AppData\Roaming\app\app.txt" 处看到一个日志文件,但它不存在。非常感谢这方面的任何帮助。

【问题讨论】:

  • 您是否 100% 确定该应用程序正在实际运行?你能弹出一个消息框什么的吗?
  • 我的猜测是启动目录在作为 AutoRun 运行时是不同的,并且您将相对路径传递给 log4net 配置。我建议添加一些使用File.AppendAllText(@"c:\temp\path.txt", Environment.CurrentDirectory) 的测试代码来查看工作目录是什么。如果我的猜测不正确,请将 log4net 配置调试输出转储到使用 this 之类的文件中,您应该能够看到问题所在。
  • 这样的应用程序运行完美。唯一的问题是日志
  • 是的,我明白了。如果你想知道为什么 log4net 没有记录,你必须 a) 确保它正在获取配置文件 b) 如果是这样,检查内部调试输出。
  • 您好 Stuartd,您能指导我如何在使用以下代码行初始化配置后获取日志文件的路径。 log4net.Config.XmlConfigurator.Configure(new FileInfo("log4net.config"));

标签: c# console-application log4net


【解决方案1】:

尝试使用日志文件的绝对路径,看看是否有帮助。我遇到了同样的问题,手动执行 exe 记录数据,但是当通过命令提示符运行时,保持沉默。

【讨论】:

    猜你喜欢
    • 2012-05-25
    • 2019-05-23
    • 1970-01-01
    • 2020-02-08
    • 2020-09-10
    • 1970-01-01
    • 1970-01-01
    • 2015-10-17
    • 1970-01-01
    相关资源
    最近更新 更多