로깅을 위해 ASP.NET 웹 서비스에서 log4net을 사용합니다. log4net에 대한 초기화 논리를 global.asax에 추가했습니다.log4net Windows 서버 2003에 로그 파일 생성 안 함
필자는이 웹 서비스를 win xp, loging works에서 테스트했습니다.
는 그럼 난 Windows 서비스 2003내가 loging 테스트에 MSI 설치를 통해이 웹 서비스를 전개하지만 작품을 나던. 로그 파일을 만들지 않습니다.
먼저 내 코드를 보여
의 Web.config
<?xml version="1.0"?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" requirePermission="false"/>
</configSections>
<appSettings>
</appSettings>
<connectionStrings/>
<log4net configSource="config.log4net" />
<system.web>
<authorization>
<allow users="?" />
</authorization>
<compilation debug="true" ></compilation>
<authentication mode="None" />
</system.web>
</configuration>
log4net의 설정
<?xml version="1.0" encoding="utf-8" ?>
<log4net>
<appender name="RollinFileAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="logs\\log" />
<param name="AppendToFile" value="true" />
<param name="MaxSizeRollBackups" value="10" />
<param name="MaximumFileSize" value="10" />
<param name="RollingStyle" value="Date" />
<param name="DatePattern" value="_yyMMdd.\t\x\t" />
<param name="StaticLogFileName" value="false" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p - %m%n" />
</layout>
</appender>
<logger name="mylogger">
<level value="DEBUG" />
<appender-ref ref="RollinFileAppender"/>
</logger>
</log4net>
Global.asax에
,363,210public class Global : System.Web.HttpApplication
{
protected void Application_Start(object sender, EventArgs e)
{
XmlConfigurator.Configure();
}
}
는 그리고 WS 클래스에서 로거 객체를 생성 : 웹 방법
public static ILog _logger = LogManager.GetLogger("mylogger");
사용 :
_logger.Info(input);
처음에는이 보안 문제라고 생각합니다.
그래서 나는 폴더 C에 permison 편집 : \를 Inetpub \ wwwroot에 \ TXS \ 로그 계정에 대한 : 모든 권한- ASPNET 모든 권한
- 네트워크 서비스 모든 권한
- IUSR
하지만 도움이되지 않았습니다.
그래서 IIS의 가상 폴더 설정을 편집하여 편집했습니다. 또한 나는 도움을 didnt한다.
나는 그것을 구글이 발견 :
http://neilkilbride.blogspot.com/2008/03/log4net-problems-logging-from-web-app.html 그래서 나는 그것을 시도했다. 여기가 편집 됨 web.config.
<?xml version="1.0"?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" requirePermission="false"/>
</configSections>
<appSettings>
<add key="log4net.Internal.Debug" value="true"/>
</appSettings>
<connectionStrings/>
<system.diagnostics>
<trace autoflush="true">
<listeners>
<add
name="textWriterTraceListener"
type="System.Diagnostics.TextWriterTraceListener"
initializeData="C:\log.txt" />
</listeners>
</trace>
</system.diagnostics>
<log4net configSource="config.log4net" />
<system.web>
<authorization>
<allow users="?" />
</authorization>
<compilation debug="true" ></compilation>
<authentication mode="None" />
</system.web>
</configuration>
도움이되지 않았습니다. 로그 파일이 작성되지 않습니다. 내가 XP에서 승리를 테스트했을 때 모든 것이 작동합니다.
누구든지 내게 문제의 근원이 무엇인지 조언 해 줄 수 있습니까?
편집을 할
: 그것은 보안 문제이고, 나는의 Web.config에 넣어 :<trust level="High" />
하고 문제가 해결되었다.
이 코드는 다른 문제점을 찾아 낼 수 있도록 도와줍니다. 감사합니다. – kobe