Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Log4net赢得';t将数据发送到";日志条目“;_C#_Asp.net_Logging_Log4net_Logentries - Fatal编程技术网

C# Log4net赢得';t将数据发送到";日志条目“;

C# Log4net赢得';t将数据发送到";日志条目“;,c#,asp.net,logging,log4net,logentries,C#,Asp.net,Logging,Log4net,Logentries,我正在尝试使用log4net将一些数据登录到www.logentries.com。 我的问题是,我尝试记录的所有内容都会显示在FileAppender中,但logentries.com上不会显示任何数据。 我试图获取一些错误信息并启用log4net内部日志记录,但该文件不包含任何错误消息。 在这一点上,我真的不知道在哪里检查可能的错误 基本的日志代码就是这段代码 private static readonly ILog logger = LogManager.GetLogger(typeof(L

我正在尝试使用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>

您可能需要更改appender的锁定模式,以包括MinialLock

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


解决方案是在创建(最后一个)日志条目后等待足够长的时间。要么后面有足够的代码,要么不确定执行一个任务需要多长时间。延迟(1000)或类似的东西。

原因似乎是因为logentries appender在内部是异步工作的,所以程序可以在日志发送到服务器之前完成并终止日志线程。不幸的是,没有真正的迹象表明发生了这种情况。

很可能这是一个很晚的答复,但我也面临着同样的问题,在网络上找不到任何有成效的东西。直到最后我才找到解决方案,并考虑在这里更新,因为它可能会帮助别人

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

 <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>

****
虽然日志条目的文档中提到了在appsettings中添加令牌,但是由于一些未知的原因,它似乎从那里获取了令牌

还要确保项目的目标.net framework为>=4.0

供您参考: 我正在使用

  • Log4net 1.2.15

  • LogentriesLog4net 2.8.0

  • LogentriesCore 2.8.0


  • 希望这对别人有帮助

    我也有同样的问题。即使一切似乎都设置正确,也没有任何内容记录到日志条目中。其他Appender正在工作

    我启用了log4net调试日志记录(请参阅)

    …在我的案例中,这是一个版本问题。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)
    

    您的防火墙是否阻止了传出的流量?谢谢您的提示,这将引导您进入正确的方向。请看我的答案,了解真正的原因。谢谢!我一直在扯头发,直到睡着了!