log4net消息何时从缓冲区刷新到目标?

log4net消息何时从缓冲区刷新到目标?,log4net,Log4net,我在用电话。缓冲区大小值设置为100。据我所知,信息将被保存在内存中,直到有100条。然后它们将被冲到目的地。以下是我的问题 1.如果一整天只有十条消息被放入缓冲区怎么办。他们会被冲到目的地吗? 2.如果我是从一个web应用程序进行日志记录,那么当缓冲区中有50条消息并且应用程序池被回收,或者web应用程序被重新发布时会发生什么?那50条信息会永远丢失吗? 3.将缓冲区大小设置为1是否效率低下?测试时,我们总是将其设置为1,以便尽快查看日志 提前谢谢 不,直到达到缓冲区计数或应用程序结束 当应用

我在用电话。缓冲区大小值设置为100。据我所知,信息将被保存在内存中,直到有100条。然后它们将被冲到目的地。以下是我的问题

1.如果一整天只有十条消息被放入缓冲区怎么办。他们会被冲到目的地吗? 2.如果我是从一个web应用程序进行日志记录,那么当缓冲区中有50条消息并且应用程序池被回收,或者web应用程序被重新发布时会发生什么?那50条信息会永远丢失吗? 3.将缓冲区大小设置为1是否效率低下?测试时,我们总是将其设置为1,以便尽快查看日志

提前谢谢

  • 不,直到达到缓冲区计数或应用程序结束

  • 当应用程序域被拆除时,缓冲区被刷新到数据库中

  • 这只意味着每个日志事件都有一个数据库连接,这可能会造成很高的开销(并阻塞调用线程)。如果您看一看,有一个ADONetAppender子类的示例,它将在指定时间后将缓冲区刷新到数据库中

  • 不,直到达到缓冲区计数或应用程序结束

  • 当应用程序域被拆除时,缓冲区被刷新到数据库中

  • 这只意味着每个日志事件都有一个数据库连接,这可能会造成很高的开销(并阻塞调用线程)。如果您看一看,有一个ADONetAppender子类的示例,它将在指定时间后将缓冲区刷新到数据库中


  • 谢谢@stuartd。如果你把你的评论作为回答,我会接受的。还有,@stuartd,你能看一下吗?我注意到您回答了大量的log4net问题,我想知道使用ThreadContext是否合适。当属性不仅仅是字符串时,我很难记录自定义对象。哦,是的,
    12wo
    问题,很有趣。只要设置值的线程与日志记录的线程相同,使用ThreadContext就可以了。谢谢@stuartd。如果你把你的评论作为回答,我会接受的。还有,@stuartd,你能看一下吗?我注意到您回答了大量的log4net问题,我想知道使用ThreadContext是否合适。当属性不仅仅是字符串时,我很难记录自定义对象。哦,是的,
    12wo
    问题,很有趣。只要设置值的线程与执行日志记录的线程相同,使用ThreadContext就可以了。