-1
我有一個項目使用Topshelf和Log4net,當我運行項目時,我看到一個新的日誌文件只包含有關服務創建,啓動等信息,我手動嘗試的日誌條目都不是添加到文件中。Topshelf log4net無法正常工作
的App.config
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" requirePermission="false"/>
</configSections>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Common.Logging.Core" publicKeyToken="af08829b84f0328e" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.1.0.0" newVersion="3.1.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Common.Logging" publicKeyToken="af08829b84f0328e" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.1.0.0" newVersion="3.1.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Topshelf" publicKeyToken="b800c4cfcdeea87b" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.3.154.0" newVersion="3.3.154.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
<log4net>
<appender name="LogFileAppender"
type="log4net.Appender.RollingFileAppender" >
<param name="AppendToFile"
value="true" />
<file type="log4net.Util.PatternString" value="..\..\log\Topshelf.Host.%appdomain.log" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="4" />
<maximumFileSize value="10MB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern"
value="%-5p %d{yyyy-MM-dd hh:mm:ss} - %m%n" />
</layout>
</appender>
<root>
<level value="ALL" />
<appender-ref ref="LogFileAppender" />
</root>
</log4net>
</configuration>
的Program.cs
public class Program
{
private static readonly ILog log = LogManager.GetLogger(typeof(Job));
static void Main(string[] args)
{
HostFactory.Run(c =>
{
log4net.Config.XmlConfigurator.Configure();
c.UseLog4Net();
c.ScheduleQuartzJobAsService(q =>
q.WithJob(() =>
JobBuilder.Create<Job>().Build())
.AddTrigger(() =>
TriggerBuilder.Create()
.WithSimpleSchedule(builder => builder
.WithIntervalInSeconds(5)
.RepeatForever())
.Build())
);
log.Info("Setting up the service");
});
}
}
Job.cs
public class Job : IJob
{
private readonly ILog log = LogManager.GetLogger(typeof(Job));
public void Execute(IJobExecutionContext context)
{
log.ErrorFormat("The current time is: {0}", DateTime.Now);
}
}
我建議寫入這個文件夾,因爲權限通常不是問題:' /日誌/ <程序名稱>/<日誌文件名稱>「/>' –
我將日誌文件夾移至c:\ logs,日誌已創建,但我沒有看到我嘗試記錄的任何消息,只是頂部日誌消息: INFO 2016 -03-03 03:51:08 - Topshelf v3.3.154.0,.NET Framework v4.0.30319.42000 DEBUG 2016-03-03 03:51:08 - 作爲控制檯應用程序運行,創建控制檯主機。 – irokhes