未在服务器(Windows 2008)和IIS7上创建日志。我给出了绝对的路径以及相对的路径。
我已授予日志文件夹的所有权限。我已经包含了网络用户,IUsr和IIS_IUSRS,并且每个人都有权限。还
没有将日志写入该文件夹
网络配置中的条目如下
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
<log4net>
<logger name="GeneralLogger">
<level value="ALL" />
<appender-ref ref="RollingFile" />
</logger>
<appender name="RollingFile" type="log4net.Appender.RollingFileAppender">
<file value="C:\\vhosts\\staging.customerportal.com\\log\\CustomerPortal.log"/>
<appendToFile value="true"/>
<datePattern value="yyyyMMdd"/>
<rollingStyle value="Date"/>
<filter type="log4net.Filter.LevelRangeFilter">
<acceptOnMatch value="true"/>
<levelMin value="DEBUG"/>
<levelMax value="FATAL"/>
</filter>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%-5p %d %5rms %X{addr} %-22.22c{1} %-18.18M - %m%n"/>
</layout>
</appender>
</log4net>
我曾试过提供单斜杠,而且在web配置中的文件值中只有双斜杠没有任何作用。
global.asax.cs中的代码是
public class MvcApplication : System.Web.HttpApplication
{
private static log4net.ILog log = log4net.LogManager.GetLogger(typeof(MvcApplication));
protected void Application_Start()
{
log4net.Config.XmlConfigurator.Configure();
}
assemblyinfo.cs中的代码是
[assembly: XmlConfigurator(ConfigFile="web.config", Watch=true)]
我曾尝试使用此代码,并且在assemblyinfo.cs中没有此代码
它不起作用。
当我在localhost中使用绝对路径时,日志会正确写入该文件夹
服务器上失败
我在控制器文件中尝试了这两个选项
//private static log4net.ILog log =
log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType) ;
private static log4net.ILog log = log4net.LogManager.GetLogger("GeneralLogger");
我曾尝试过一条不存在的路径,它没有创建文件夹。
请帮帮我。请帮我介绍如何使用服务器
中的log4net启用日志答案 0 :(得分:1)
在配置logmanager(实际上是配置两次)之前,通过调用Application onStart上的Configure来初始化记录器。
选项1:
public class MvcApplication : System.Web.HttpApplication
{
private static log4net.ILog log = log4net.LogManager.GetLogger(typeof(MvcApplication));
protected void Application_Start()
{
//Remove: log4net.Config.XmlConfigurator.Configure();
}
并保持:
[assembly: XmlConfigurator(ConfigFile="web.config", Watch=true)]
选项2:
public class MvcApplication : System.Web.HttpApplication
{
private static log4net.ILog log;
protected void Application_Start()
{
log4net.Config.XmlConfigurator.Configure();
log = log4net.LogManager.GetLogger(typeof(MvcApplication));
}
并删除:
//Remove: [assembly: XmlConfigurator(ConfigFile="web.config", Watch=true)]