我一直在寻找,但没有找到,所以我想我会问。
当使用缓冲的log4net appender时,我是否需要在应用程序出口处调用某种flush,或者log4net是否自行处理?
答案 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?)