Ich benutze log4net in ASP.NET Web-Service für die Protokollierung. Ich habe init logic für log4net zu global.asax hinzugefügt.log4net erstellt keine Log-Datei auf Windows Server 2003
Ich habe diesen Web-Service auf Win XP getestet, Logging funktioniert.
Dann entfalten ich diesen Web-Service über msi Installationsprogramm auf Windows-Dienst 2003
ich loging testen, aber es funktioniert nicht. Es erstellt keine Protokolldatei.
Zuerst zeige ich meinen Code:
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 Config
<?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
public class Global : System.Web.HttpApplication
{
protected void Application_Start(object sender, EventArgs e)
{
XmlConfigurator.Configure();
}
}
Und ich erstellen Logger-Objekt in WS-Klasse:
public static ILog _logger = LogManager.GetLogger("mylogger");
Verwendung in Web-Methode:
_logger.Info(input);
Zuerst ich denke, es Sicherheitsproblem ist.
So bearbeitete ich auf Ordner C permison: \ Inetpub \ wwwroot \ txs \ Logs für Konten:
- ASPNET auf Vollzugriff
- Netzwerkdienst Vollzugriff
- IUSR auf Vollzugriff
Aber es hat nicht geholfen.
So habe ich Einstellungen auf virtuellen Ordner auf IIS zum Schreiben bearbeitet. Auch ich habe nicht geholfen.
ich es Google und diese gefunden: http://neilkilbride.blogspot.com/2008/03/log4net-problems-logging-from-web-app.html
Also habe ich versucht. Hier ist bearbeitet 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>
Es hat nicht geholfen. Keine Protokolldatei wird erstellt. Wenn ich auf Win Xp getestet habe, funktioniert alles.
Kann jemand mir Rat geben, was Wurzel des Problems ist.
EDITED: Es war Sicherheitsproblem, habe ich zu web.config:
<trust level="High" />
und Problem war gelöst.
Dieser Code hilft mir, ein anderes Problem zu finden, danke – kobe