【问题标题】:Log4net won't send data to "Logentries"Log4net 不会将数据发送到“Logentries”
【发布时间】:2014-06-24 15:32:31
【问题描述】:

我正在尝试使用 log4net 将一些数据记录到 www.logentries.com。
我的问题是我尝试记录的所有内容都显示在 FileAppender 中,但 logentries.com 上没有显示任何数据。
我试图获取一些错误信息并启用 log4net 内部日志记录,但该文件不包含任何错误消息。
在这一点上,我真的无能为力检查可能的错误......

基本的日志记录代码就是这段代码

private static readonly ILog logger = LogManager.GetLogger(typeof(Logentries));

static void Main(string[] args) {
    XmlConfigurator.Configure();
    logger.Fatal("Fatal message");
}

我将此行添加到我的 AssemblyInfo.cs

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "App.config", Watch = true)]

我的 App.config 是这样设置的:

<configSections>
  <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<log4net>
  <appender name="LeAppender" type="log4net.Appender.LogentriesAppender, LogentriesLog4net">
    <ImmediateFlush value="true" />
    <Debug value="true" />
    <HttpPut value="false" />
    <Ssl value="false" />
    <layout type="log4net.Layout.PatternLayout">
      <param name="ConversionPattern" value="%d{ddd MMM dd HH:mm:ss zzz yyyy} %logger %: %level%, %m, " />
    </layout>
  </appender>
  <appender name="FileAppender" type="log4net.Appender.FileAppender">
    <file value="C:\log-file.txt" />
    <appendToFile value="true" />
    <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%date [%thread] %-5level %logger [%ndc] - %message%newline" />
    </layout>
  </appender>
  <root>
    <level value="ALL" />
    <appender-ref ref="LeAppender" />
   <appender-ref ref="FileAppender" />
  </root>
</log4net>

<appSettings>
  <add key="Logentries.Token" value="XXXXXX-XXXXXX-XXXXXXXXX-XXXXXXX" />
  <add key="log4net.Internal.Debug" value="true" />
</appSettings>

【问题讨论】:

  • 您的防火墙是否阻止了传出流量?
  • 感谢您提供正确方向的提示。看看我的回答,了解真正的原因。

标签: c# asp.net logging log4net logentries


【解决方案1】:

解决方案是在完成(最后一个)日志条目后等待足够长的时间。后面有足够的代码,或者不确定使用 Task.Delay(1000) 或类似的东西执行代码需要多长时间。
原因似乎是由于 logentries appender 在内部异步工作,因此程序可以在将日志发送到服务器之前完成并终止日志记录线程。不幸的是,没有真正的迹象表明发生了这种情况。

【讨论】:

  • 谢谢!我一直在扯头发,直到我睡着了!
【解决方案2】:

我遇到了几乎相同的问题。即使一切似乎都正确设置,也没有任何内容记录到 Logentries。其他附加程序正在工作。

我启用了 log4net 调试日志记录(请参阅 How to track down log4net problems

...在我的情况下,它原来是一个版本问题。 LeAppender 需要 log4net 1.2.13.0 版本,而我的应用程序使用的是 1.2.10.0:

log4net:ERROR XmlHierarchyConfigurator: Could not create Appender [LeAppender] of type [log4net.Appender.LogentriesAppender, LogentriesLog4net]. Reported error follows.
System.IO.FileLoadException: Could not load file or assembly 'log4net, Version=1.2.13.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

【讨论】:

    【解决方案3】:

    好吧,现在这可能是一个很晚的回复,但我面临同样的问题,并且在网上几天和几天都找不到任何有成效的东西。直到最终我才找到解决方案并想到在这里更新,因为它可能对某人有所帮助。

    解决方案相当简单。 而不是这个

     <appSettings>
        <add key="Logentries.Token" value="XXXXXX-XXXXXX-XXXXXXXXX-XXXXXXX" />
     </appSettings>
    

    在标签本身内包含令牌。

    <appender name="LeAppender" type="log4net.Appender.LogentriesAppender, LogentriesLog4net">
        **<Token value="XXXXXX-XXXXXX-XXXXXXXXX-XXXXXXX"/>**
        <ImmediateFlush value="true" />
        <Debug value="true" />
        <HttpPut value="false" />
        <Ssl value="false" />
        <layout type="log4net.Layout.PatternLayout">
          <param name="ConversionPattern" value="%d{ddd MMM dd HH:mm:ss zzz yyyy} %logger %: %level%, %m, " />
        </layout>
     </appender>
    

    虽然 Logentries 的文档中提到了在 appsettings 中添加令牌,但由于某些未知原因,它似乎确实从那里获取了令牌。

    还要确保项目的目标 .net 框架 >= 4.0

    供您参考: 我正在使用

    1. Log4net 1.2.15

    2. LogentriesLog4net 2.8.0

    3. LogentriesCore 2.8.0

    希望这对某人有所帮助。

    【讨论】:

      【解决方案4】:

      您可能希望更改 appender 的锁定模型以包含 MinialLock

      <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
      

      http://www.codeproject.com/Articles/140911/log-net-Tutorial

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-03-14
        • 1970-01-01
        • 1970-01-01
        • 2016-05-10
        • 2019-05-21
        • 2017-12-11
        • 2019-06-20
        • 2017-07-12
        相关资源
        最近更新 更多