【问题标题】:Log file not getting created while using Log4Net使用 Log4Net 时未创建日志文件
【发布时间】:2014-04-03 12:52:07
【问题描述】:

我是 Log4Net 的新手。我正在尝试使用此记录器来记录我的 WCF 服务。

我在使用这个时遇到了问题,因为没有创建日志文件。

构建成功,没有报错。

这是我在 app.config 中的配置:

   <configSections>
        <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
          <section name="Utilities.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false"/>
          <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,Log4net"/>
        </sectionGroup>
    </configSections>
  <log4net>
    <root>
      <level value="DEBUG"/>
      <appender-ref ref="LogFileAppender" />
    </root>
    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
      <lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
      <file value="c:\Avinash" />
      <datePattern value="dd.MM.yyyy'.log'" />
      <staticLogFileName value="false" />
      <appendToFile value="true" />
      <rollingStyle value="Composite" />
      <maxSizeRollBackups value="10" />
      <maximumFileSize value="5MB" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
      </layout>
    </appender>
  </log4net>

这里面有没有错误。我尝试了很多时间。但是,无法找出问题所在。

有什么建议吗??

另外,这是我为记录功能创建的类:

namespace Utilities
{
    public class Logger
    {
        private static readonly log4net.ILog logger = log4net.LogManager.GetLogger
     (System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);

        public void log(string strErrorMessage)
        {
            logger.Debug(strErrorMessage);
        }
    }
}   

这样做是否正确?

我在异常块中调用日志方法,我需要在服务中记录异常。

请给出您对此实现的想法

【问题讨论】:

  • 我不知道您的问题是什么,但是您必须在加载任何其他 DLL 之前初始化 log4net。确保您正在这样做,否则日志记录不起作用。

标签: c# wcf log4net logfile


【解决方案1】:
<root>
  <appender-ref ref="LogFileAppender" />
</root>

你错了。应该是:

<root>
  <appender-ref ref="RollingLogFileAppender" />
</root>

【讨论】:

    【解决方案2】:

    您应该在尝试通过调用记录任何内容之前显式初始化您的记录器

    XmlConfigurator.Configure();
    

    还有另一种初始化记录器的方法(例如,通过使用属性);请参考this question

    【讨论】:

    • 我还注意到您的日志文件名设置为"c:\Avinash"。请尝试指定文件名,如"c:\Avinash\Application.log"。也许这是问题的根源。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多