如何正确使用Topshelf.Logging
本文关键字:Topshelf Logging 何正确 | 更新日期: 2023-09-27 18:37:08
知道如何正确使用Topshelf.Logging
吗?
是否必须将NLogLogWriter
传递给服务类的构造函数?
以及如何启用输出到控制台?
class Program
{
#region Properties
Topshelf.Logging.NLogLogWriter logger;
static string mainLoggerName = "MainLogger";
#endregion
static void Main(string[] args)
{
var nlogLogger = LogManager.GetCurrentClassLogger();
Topshelf.Logging.NLogLogWriter logger = new Topshelf.Logging.NLogLogWriter(nlogLogger, mainLoggerName);
HostFactory.Run(x =>
{
x.Service<ExSPCAgentService>(s =>
{
s.ConstructUsing(name => new MyAgentService());
// s.WhenStarted(tc => tc.Start());
s.WhenStarted(tc =>
{
// Add more config options if you need
tc.Start();
});
s.WhenStopped(tc => tc.Stop());
});
x.RunAsLocalSystem();
x.UseNLog();
x.SetDescription("MyAgentService");
x.SetDisplayName("MyAgentService");
x.SetServiceName("MyAgentService");
});
}
}
若要指定记录器,请使用 UseNLog 的重载,该重载允许您指定 LogFactory。
要记录到控制台,您将启用控制台目标。
编辑:文档
网络集成
若要通过 NLog 启用日志记录,可以使用 Topshelf.NLog NuGet 包。添加到项目后,通过配置将 Topshelf 配置为使用 NLog:
HostFactory.New(x =>
{
x.UseNLog();
});
这将更改 HostLogger 以使用 NLog。也可以使用相同的方法重载传递现有的 LogFactory。