首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

Log4net不输出日志! (弄了一天,没有结果,顶有分!),该如何处理

2012-03-12 
Log4net不输出日志!!! (弄了一天,没有结果,顶有分!!)有一个LoggerManager模块,引用了log4net,其中如下操作

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 &#13;&#10;" />        <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();
}
[解决办法]
关注+学习!!
[解决办法]
没用过...只好帮你顶

关注+学习!!

热点排行