【发布时间】:2015-01-09 19:03:33
【问题描述】:
当调用HostConfigurator.RunAsLocalSystem() 或等效函数时,TopShelf 库会向控制台输出几行。
如何防止 TopShelf 输出这些行?
【问题讨论】:
标签: c# console output topshelf
当调用HostConfigurator.RunAsLocalSystem() 或等效函数时,TopShelf 库会向控制台输出几行。
如何防止 TopShelf 输出这些行?
【问题讨论】:
标签: c# console output topshelf
虽然威廉·莫里森的回答是正确的,但为了让登陆这里的人们希望使用 TopShelf 启用日志记录,这里是使用 NLog 的方法之一
第 1 步:通过 NuGet 安装以下内容 PackageManager 控制台> Install-Package TopShelf PackageManager 控制台> 安装-Package TopShelf.NLog
第 2 步:在配置 lambda 中,告诉 TopShelf 您打算使用 NLog
HostFactory.Run(configurator =>
{
configurator.Service<NotificationEngineService>(svc =>
{
// configure service start, stop etc. here
});
// The below option is add via TopShelf.NLog.dll assembly
configurator.UseNLog();
// Continue configuring
});
【讨论】:
控制台输出是日志信息。如果您将日志框架与 Topshelf 一起使用,则这些行将显示在日志文件中而不是控制台中。
我建议使用带有 Topshelf 的日志框架。无论如何,您应该始终登录一个严肃的项目,它消除了控制台中的行。双赢。
【讨论】:
NullLogger,如果我没记错的话github.com/Topshelf/Topshelf/blob/develop/src/Topshelf/Logging/…是你需要实现和注册的接口。
NullLogger?
HostLogger.UseLogger() 是你用来注册它的。它位于 Topshelf.Logging 命名空间中。