Log4Net未创建日志文件
我正在使用log4net在我的应用程序中记录错误。但是日志文件没有被创建。就我所见,代码很好 Web.config代码Log4Net未创建日志文件,log4net,log4net-configuration,Log4net,Log4net Configuration,我正在使用log4net在我的应用程序中记录错误。但是日志文件没有被创建。就我所见,代码很好 Web.config代码 <configSections> <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --> <section name="entityFramework"
<configSections>
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
<log4net>
<appender name="Console" type="log4net.Appender.ConsoleAppender">
<layout type="log4net.Layout.PatternLayout">
<!-- Pattern to output the caller's file name and line number -->
<conversionPattern value="%5level [%thread] (%file:%line) - %message%newline" />
</layout>
</appender>
<appender name="RollingFile" type="log4net.Appender.RollingFileAppender">
<file value="C:\Demo\example.log" />
<appendToFile value="true" />
<maximumFileSize value="100KB" />
<maxSizeRollBackups value="2" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%level %thread %logger - %message%newline" />
</layout>
</appender>
<root>
<level value="DEBUG" />
<appender-ref ref="Console" />
<appender-ref ref="RollingFile" />
</root>
</log4net>
在我想要跟踪错误的类中,我添加了以下代码
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Web.config", Watch = true)]
private static readonly ILog logger = LogManager.GetLogger(typeof(ProviderRepository));
我在catch块中使用记录器
logger.Error(Ex.Message);
但是我没有看到日志文件。我在这里做错了什么吗?您应该检查您的apppool用户是否有权访问C:\Demo\,接下来您可以启用log4net内部调试,它将告诉您在配置或文件访问等方面是否有任何问题:
<configuration>
...
<appSettings>
<add key="log4net.Internal.Debug" value="true"/>
</appSettings>
...
<system.diagnostics>
<trace autoflush="true">
<listeners>
<add
name="textWriterTraceListener"
type="System.Diagnostics.TextWriterTraceListener"
initializeData="C:\tmp\log4net.txt" />
</listeners>
</trace>
</system.diagnostics>
</configuration>
非常感谢你们的建议,伙计们。我能够找到这个。我已经在Global.asax文件中写了下面的代码行
[assembly: log4net.Config.XmlConfigurator(Watch = true)]
我之前在Assembly.info.cs文件中写的 尝试私有静态只读ILog\u log=LogManager.GetLoggerMethodBase.GetCurrentMethod.DeclaringType;另外,请尝试将配置分离到一个单独的log4net.config文件,并调整AssemblyInfo中的声明-我认为这对我有效。我做了您提到的更改。不幸的是,我仍然面临相同的问题。还有其他建议吗。。我需要完成一个DemoApp。时间对我来说至关重要。非常感谢你的回复。你看到控制台中的日志了吗?您确定要在catch块中添加一个log.Debug,然后在方法开始时检查控制台吗?