저는 Windows 서비스에서 log4net을 작성하는 데 매우 좌절감을 느낍니다. Google에서 검색을 시도했지만 문제가 해결되지 않았습니다. 여기 Windows 서비스에서 Log4net이 작동하지 않습니다.
내의 App.config입니다 : 주요 기능에서 program.cs에서<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="log4net"
type="log4net.Config.Log4NetConfigurationSectionHandler, log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821" />
</configSections>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
</startup>
<appSettings>
<add key="ApplicationSettings" value="Configurations/ApplicationSettings.json" />
<add key="ClientSettingsProvider.ServiceUri" value="" />
</appSettings>
<!-- log4net rolling file configuration -->
<log4net debug="true">
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="log.txt" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="100KB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
</layout>
</appender>
<root>
<level value="DEBUG" />
<appender-ref ref="RollingLogFileAppender" />
</root>
</log4net>
<system.web>
<membership defaultProvider="ClientAuthenticationMembershipProvider">
<providers>
<add name="ClientAuthenticationMembershipProvider"
type="System.Web.ClientServices.Providers.ClientFormsAuthenticationMembershipProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri="" />
</providers>
</membership>
<roleManager defaultProvider="ClientRoleProvider" enabled="true">
<providers>
<add name="ClientRoleProvider"
type="System.Web.ClientServices.Providers.ClientRoleProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri="" cacheTimeout="86400" />
</providers>
</roleManager>
</system.web>
</configuration>
, 나는 호출 시도 :
System.IO.Directory.SetCurrentDirectory(AppDomain.CurrentDomain.BaseDirectory);
XmlConfigurator.Configure();
Main.cs (내 서비스)의 ONSTART 함수에서 I 시도 :
아무 일도 발생하지 않지만 로그를 쓸 때 로그 파일이 나타나지 않습니다.
아무도 도와 줄 수 있습니까?
나는 하루 종일 해결책을 찾지 만 아무 것도 찾지 못했습니다.
<appender name="RollingFileAppender"
<root>
<level value="DEBUG" />
<appender-ref ref="RollingLogFileAppender" />
이름은 위의 일치해야합니다 :
는 위의 구성 문제를 가지고있는 것처럼
서비스를 실행중인 계정은 무엇입니까? 계정에 로그인하려는 폴더에 ** 쓰기 ** 액세스 권한이 있습니까? – MickyD
ProjectInstaller를 LocalSystem으로 설정했습니다. – Redplane
파일을 찾을 수 없으면 가장 흔한 사고가 될 것입니다. 운영 체제 디렉토리에 로그 파일을 작성하는 것이 건강에 좋지 않으며 마지막으로 보게됩니다. 파일 경로를 지정하지 않았으므로 프로그램의 기본 작업 디렉토리에 기록됩니다. 서비스 중 c : \ windows \ system32 또는 c : \ windows \ syswow64 –