2013-07-05 6 views
1
<?xml version="1.0"?> 
<configuration> 
    <configSections> 
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, 
    log4net" /> 
    <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" > 
     <section name="Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> 
    </sectionGroup> 
    </configSections> 
    <system.serviceModel> 
     <!-- Redacted --> 
    </system.serviceModel> 
    <log4net debug="true"> 
    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"> 
     <lockingModel type="log4net.Appender.FileAppender+MinimalLock"/> 
     <file value="logs\" /> 
     <datePattern value="'Proxy_'dd.MM.yyyy'.log'" /> 
     <staticLogFileName value="false" /> 
     <appendToFile value="true" /> 
     <rollingStyle value="Composite" /> 
     <maxSizeRollBackups value="10" /> 
     <maximumFileSize value="5MB" /> 
     <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" /> 
     </layout> 
    </appender> 
    <root> 
     <priority value="ALL" /> 
     <appender-ref ref="RollingLogFileAppender" /> 
    </root> 
    <category name="Client.log"> 
     <priority value="ALL" /> 
    </category> 
    </log4net> 
    <applicationSettings> 
    <!-- Redacted --> 
    </applicationSettings> 
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration> 

У меня есть выше конфигурации для моей службы окна, когда он установлен, и я инициализация моего регистратор как и в файл Progam.cs на службе, я устанавливаю:Почему моя служба Windows ничего не регистрирует?

static void Main() 
{ 
    XmlConfigurator.Configure(); 
    _logger.Debug("ProxyServerService Started."); 
    ServiceBase[] ServicesToRun; 
    ServicesToRun = new ServiceBase[] 
    { 
     new ProxyServerService() 
    }; 
    ServiceBase.Run(ServicesToRun); 
    _logger.Debug("ProxyServerService Terminated."); 
} 

Когда Я использую почти ту же конфигурацию в приложении, которое общается с этой службой, создает каталог журнала и записывает журналы в этот каталог. Но когда я запускаю службу, ничего не происходит.

+0

Я думаю, это может быть из-за того, что окна запускают службы с их базовым каталогом как Windows \ system32, поэтому он пытается записать там каталог журнала? –

ответ

2

Оказывается, причина в том, что я не мог видеть журналы, потому что я настроил журнал регистрации в активном каталоге, который является Windows \ system32, и окна не позволят мне это сделать.

Я изменил следующую строку:

<file value="logs\" /> 

To:

<file value="C:\AppName\logs\" /> 

И это прекрасно работает.