Log4net不输出日志!!! (弄了一天,没有结果,顶有分!!)
有一个LoggerManager模块,引用了log4net,
其中如下操作:
- C# code
public static class Logger { private static readonly ILog logger = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); public static void Debug(object message) { if (logger.IsDebugEnabled) { logger.Debug(message); } }
结果是IsDebugEnabled =false!即使强制写也看不到输出日志。
下面是配置文件。
- XML code
<?xml version="1.0" encoding="utf-8" ?><configuration> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" /> </configSections> <log4net debug="true"> <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"> <file value="c:\test.log" /> <appendToFile value="true" /> <rollingStyle value="Size" /> <maxSizeRollBackups value="10" /> <maximumFileSize value="2KB" /> <staticLogFileName value="true" /> <layout type="log4net.Layout.PatternLayout"> <footer value="[Footer]--Test By cxy1981 " /> <conversionPattern value="%-5p %d %5rms %-22.22c{1} %-18.18M - %m%n" /> </layout> </appender> <root> <priority value="ALL" /> <appender-ref ref="RollingLogFileAppender" /> </root> </log4net></configuration>
首先说明:这个配置文件绝对可用。而且能正常输出文件。
结果是打死都没有输出日志!!
有人说是因为没有放在主程序中!有道理吗?不可理解啊。各位帮帮忙,
[解决办法]
试试info打出log不?
不太懂。。帮顶
[解决办法]
建立一个dll,先写一个类,引用log4Net.dll
- C# code
public class Logger { public static bool GetTracerSwitchor() { string configPath = Application.StartupPath + "\\eSerialPro.exe"; System.Configuration.Configuration config = System.Configuration.ConfigurationManager.OpenExeConfiguration(configPath); bool IsTracer = Convert.ToBoolean(config.AppSettings.Settings["IsTracer"].Value); return IsTracer; } /// <summary> /// 调试信息 /// </summary> /// <param name="msg"></param> public static void Debug(string msg) { bool IsTracer = GetTracerSwitchor(); if (IsTracer) { log4net.ILog log = log4net.LogManager.GetLogger("Test"); if (log.IsDebugEnabled) { log.Debug(msg); } log = null; } }}
[解决办法]
[解决办法]
命名空间前加上[assembly: log4net.Config.XmlConfigurator(Watch = true)]
[解决办法]
WEB的不是很明白,只能帮顶了。
[解决办法]
学习
[解决办法]
没用过...纯顶支持
------解决方案--------------------
执行过程中有错,可能跳过输出日志那一步了。LX自己找吧。
[解决办法]
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net"
type="log4net.Config.Log4NetConfigurationSectionHandler,
log4net-net-1.0"
/>
</configSections>
<log4net>
<!--
<root>
<level value="ALL" />
<appender-ref ref="RollingLogFileAppender" />RollingSocket RollingErentLog
</root>
-->
<logger name="Log">
<level value="ALL"/>
<appender-ref ref="RollingLog" />
</logger>
<logger name="Error">
<level value="ALL"/>
<appender-ref ref="RollingError" />
</logger>
<logger name="Login">
<level value="ALL"/>
<appender-ref ref="RollingLogin" />
</logger>
<logger name="EventLog">
<level value="ALL"/>
<appender-ref ref="RollingEventLog" />
</logger>
<logger name="ResLog">
<level value="ALL"/>
<appender-ref ref="RollingResLog" />
</logger>
<appender name="RollingError" type="log4net.Appender.RollingFileAppender">
<file value="Err\Err" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<datePattern value="yyyyMMdd'.txt'" />
<staticLogFileName value="false" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%d [%t]%c %m%n" />
</layout>
</appender>
<appender name="RollingLog" type="log4net.Appender.RollingFileAppender">
<file value="Log\Log" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<datePattern value=".yyyyMMdd'.txt'" />
<staticLogFileName value="false" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%d [%t]%c %m%n" />
</layout>
</appender>
<appender name="RollingLogin" type="log4net.Appender.RollingFileAppender">
<file value="Login\Login" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<datePattern value=".yyyyMMdd'.txt'" />
<staticLogFileName value="false" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%d [%t] %-5p %c - %m%n" />
</layout>
</appender>
<appender name="RollingEventLog" type="log4net.Appender.RollingFileAppender">
<file value="Event\Event" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<datePattern value=".yyyyMMdd'.txt'" />
<staticLogFileName value="false" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%d [%t] %-5p %c - %m%n" />
</layout>
</appender>
<appender name="RollingResLog" type="log4net.Appender.RollingFileAppender">
<file value="Res\Res" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<datePattern value=".yyyyMMdd'.txt'" />
<staticLogFileName value="false" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%d - %m%n" />
</layout>
</appender>
</log4net>
</configuration>
--
log4net.ILog Log = log4net.LogManager.GetLogger("Log");
log4net.ILog LogLogin = log4net.LogManager.GetLogger("Login");
LogLogin.Info("通信Connect成功!");
[解决办法]
一般是 assembly.cs 文件中没有正确设置
如果是 winform 的
在主工程的 assembly.cs 文件中加入
[assembly: log4net.Config.XmlConfigurator]
如果是 webform 的
在 Application_Start 中加入
void Application_Start(object sender, EventArgs e)
{
log4net.Config.XmlConfigurator.Configure();
}
[解决办法]
关注+学习!!
[解决办法]
没用过...只好帮你顶
关注+学习!!