我能够创建日志但无法为其编写异常字符串... logs.txt仍为空...
这是捕获块:
catch (Exception ex)
{
Logging.LogError(ex.ToString());
return new DataTable();
}
Logging.cs:
public class Logging
{
public readonly ILog log = LogManager.GetLogger(typeof(Logging));
public static void LogError(string exception)
{
log4net.Config.XmlConfigurator.Configure();
}
}
网络配置:
<log4net>
<appender name="file" type="log4net.Appender.RollingFileAppender">
<file type="log4net.Util.PatternString" value="Logs\Log_%date{dd-MM-yyyy_HH-mm-ss}.txt"/>
<appendToFile value="true"/>
<maxSizeRollBackups value="-1"/>
<!--infinite-->
<staticLogFileName value="true"/>
<rollingStyle value="Once"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %-5level %message%newline"/>
</layout>
</appender>
<root>
<level value="ALL"/>
<appender-ref ref="file"/>
</root>
</log4net>
答案 0 :(得分:2)
public static class Logging
{
private static ILog _logger = null;
private static log4net.ILog Logger
{
get
{
if(_logger == null)
{
_logger = LogManager.GetLogger(typeof(Logging));
log4net.Config.XmlConfigurator.Configure();
}
return _logger;
}
}
// Better to use Exception object. This gives you more details
public static void LogError(string msg, Exception ex)
{
Logger.Error(msg, ex);
}
检查Web服务器的权限并使用完整路径记录日志文件。对log4net也使用 debug =&#34; true&#34; 。下面是工作log4net配置的示例,该配置按大小滚动文件。你可以稍后改变它。
<log4net debug="true">
<root>
<level value="ALL" />
<appender-ref ref="file" />
</root>
<appender name="file" type="log4net.Appender.RollingFileAppender, log4net">
<file value="wwwroot\logs\Log.txt" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maximumFileSize value="1MB" />
<maxSizeRollBackups value="5" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%-5level] (%thread) %logger - %message%newline" />
</layout>
</appender>
答案 1 :(得分:0)
将班级更改为
public class Logging
{
public static readonly ILog log = LogManager.GetLogger(typeof(Logging));
public static Logging()
{
log4net.Config.XmlConfigurator.Configure();
}
public static void LogError(string exception)
{
log.Error(exception);
}
}
答案 2 :(得分:0)
要使用log4net,您需要:
log4net.Config.XmlConfigurator.Configure();
private static readonly ILog log = LogManager.GetLogger(typeof(MyApp));
log.Info("Exiting application.");
在您的示例中,您需要在catch块所在的类中声明记录器,在应用程序的开头初始化log4net,并使用该实例记录异常