【发布时间】:2018-07-30 02:43:32
【问题描述】:
如果 log4net 由另一个 Windows 服务启动,我会遇到 log4net 无法记录的问题。
// MonitorConsole Path
string pathToConsole = "C:\Monitor\MonitorConsole.exe";
// Start the console
Process.Start(pathToConsole);
控制台运行正常,但唯一的问题是没有记录。
但是,如果控制台应用程序是通过单击 MonitorConsole.exe 手动启动的,那么它会登录到一个文本文件中。
【问题讨论】:
-
很可能是权限问题
-
@TheGeneral 我遵循this 方法。也不行。
-
除了权限问题,如果您的 log4net 配置与您的 app.config 位于不同的文件中,那么您的程序可能找不到它。当您通过在资源管理器中单击它来启动程序时,您的工作目录将是您的程序所在的目录,但是当作为服务运行时可能不是这种情况,默认工作文件夹是 windows\system32。您可以查看使用 ProcessStartInfo 并设置 ProcessStartInfo.WorkingDirectory
标签: c# windows-services log4net