我是否需要在关闭时为log4net刷新SqlAppender?

时间:2014-02-18 19:29:12

标签: log4net

我一直在寻找,但没有找到,所以我想我会问。

当使用缓冲的log4net appender时,我是否需要在应用程序出口处调用某种flush,或者log4net是否自行处理?

1 个答案:

答案 0 :(得分:3)

您可以在http://svn.apache.org/repos/asf/logging/log4net/trunk/src/log4net/Appender/

查看源代码

但基本上,据我所知,如果你的程序正确关闭,那么应该刷新appender。

AdoNetAppender继承自BufferingAppenderSkeleton,后者继承自AppenderSkeleton和  所以类AppenderSkeleton上的终结器将调用AdoNetAppender上的Close()调用base.Close(),基类是BufferingAppenderSkeleton,这个方法调用Flush()。

当然,有时候终结器没有运行(参见Are .net finalizers always executed?