Log4net 配置在生产 doe azure web 服务中不起作用
Log4net configuration is not working in production doe azure web services
我正在使用 log4net 登录我的 webapi。日志记录在我的本地主机上工作正常,或者当我将其部署在应用程序服务器上时。同样的事情在 Azure Web 服务中不起作用。必须创建日志文件的文件夹在那里,但那里没有文件。
我在 web.config 文件中添加了以下部分,
<log4net>
<appender name ="ErrorLog" type ="log4net.Appender.RollingFileAppender">
<file value ="MyLogs\"/>
<staticLogFileName value ="false" />
<appendToFile value ="true"/>
<rollingStyle value ="Date"/>
<datePattern value ="yyyy-MM-dd.'Err'" />
<lockingModel type ="log4net.Appender.FileAppender+MinimalLock"/>
<layout type ="log4net.Layout.PatternLayout">
<conversionPattern value ="%d{DATE} [%t] %-5p %c - %m%n" />
</layout>
</appender>
<logger name ="ErrorLog">
<maximumFileSize value ="15MB" />
<appender-ref ref="ErrorLog"/>
</logger>
</log4net>
好像是log4net配置有问题
这里有一个完整的步骤,你可以按照它在我的网站上运行良好:
1.Install log4net.dll
使用 NuGet 的二进制文件。
2.Configure log4net名称,在web.config
中键入属性
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,Log4net"/>
</configSections>
</configuration>
3.Configure log4net 属性
<log4net>
<root>
<level value="Debug"/>
<appender-ref ref="LogFileAppender"/>
</root>
<appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="D:\Home\LogFiles\Log4Net\Log4Net.log"/>
<param name="AppendToFile" value="true"/>
<rollingStyle value="Size"/>
<maxSizeRollBackups value="10"/>
<maximumFileSize value="3MB"/>
<staticLogFileName value="true"/>
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%date [%thread] %-5level %logger - %message%newline"/>
</layout>
</appender>
<logger name="SleepyCore">
<level value="INFO"/>
</logger>
</log4net>
注意:需要像D:\Home
一样指定azure上log的地址
4.Modify Global.asax Application_Start()方法在方法中加入如下代码
log4net.Config.XmlConfigurator.Configure(new FileInfo(Server.MapPath("~/Web.config")));
5.Write 使用 ILog 接口实例记录日志
ILog log = LogManager.GetLogger("SleepyCore");
log.Info("Begin - Page_Load() at " + DateTime.Now.ToString("hh.mm.ss.ffffff"));
6.The输出如下:
关于如何在azure上配置log4net的更多细节,你可以参考这个article。
我正在使用 log4net 登录我的 webapi。日志记录在我的本地主机上工作正常,或者当我将其部署在应用程序服务器上时。同样的事情在 Azure Web 服务中不起作用。必须创建日志文件的文件夹在那里,但那里没有文件。
我在 web.config 文件中添加了以下部分,
<log4net>
<appender name ="ErrorLog" type ="log4net.Appender.RollingFileAppender">
<file value ="MyLogs\"/>
<staticLogFileName value ="false" />
<appendToFile value ="true"/>
<rollingStyle value ="Date"/>
<datePattern value ="yyyy-MM-dd.'Err'" />
<lockingModel type ="log4net.Appender.FileAppender+MinimalLock"/>
<layout type ="log4net.Layout.PatternLayout">
<conversionPattern value ="%d{DATE} [%t] %-5p %c - %m%n" />
</layout>
</appender>
<logger name ="ErrorLog">
<maximumFileSize value ="15MB" />
<appender-ref ref="ErrorLog"/>
</logger>
</log4net>
好像是log4net配置有问题
这里有一个完整的步骤,你可以按照它在我的网站上运行良好:
1.Install log4net.dll
使用 NuGet 的二进制文件。
2.Configure log4net名称,在web.config
中键入属性<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,Log4net"/>
</configSections>
</configuration>
3.Configure log4net 属性
<log4net>
<root>
<level value="Debug"/>
<appender-ref ref="LogFileAppender"/>
</root>
<appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="D:\Home\LogFiles\Log4Net\Log4Net.log"/>
<param name="AppendToFile" value="true"/>
<rollingStyle value="Size"/>
<maxSizeRollBackups value="10"/>
<maximumFileSize value="3MB"/>
<staticLogFileName value="true"/>
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%date [%thread] %-5level %logger - %message%newline"/>
</layout>
</appender>
<logger name="SleepyCore">
<level value="INFO"/>
</logger>
</log4net>
注意:需要像D:\Home
4.Modify Global.asax Application_Start()方法在方法中加入如下代码
log4net.Config.XmlConfigurator.Configure(new FileInfo(Server.MapPath("~/Web.config")));
5.Write 使用 ILog 接口实例记录日志
ILog log = LogManager.GetLogger("SleepyCore");
log.Info("Begin - Page_Load() at " + DateTime.Now.ToString("hh.mm.ss.ffffff"));
6.The输出如下:
关于如何在azure上配置log4net的更多细节,你可以参考这个article。