知道如何正确使用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");
});
}
}发布于 2016-03-03 13:24:40
若要指定记录器,请使用允许指定UseNLog过载的LogFactory。
对于登录到控制台,您可以启用控制台目标。
编辑:文档
NLog集成 要通过NLog启用日志记录,Topshelf.NLog NuGet包是可用的。一旦添加到您的项目中,通过配置配置将Top大陆架配置为使用NLog:
HostFactory.New(x =>
{
x.UseNLog();
});这将将HostLogger更改为使用NLog。使用相同方法的重载,也可以传递现有的LogFactory。
https://stackoverflow.com/questions/35773098
复制相似问题