log4net - 为什么同一个MyLog.Debug行在启动的一个点上不起作用,但在另一个点工作?

时间:2010-03-11 03:44:03

标签: log4net

在我的WinForms应用程序启动期间,我注意到有几个点(在MainForm呈现之前)执行“MyDataSet.GetInstance()”。对于第一个,MyLog.Debug行在VS2008输出窗口中出现,但是对于稍后的行,它确实可以工作并通过。

有什么可以解释这个?我可以在调试时检查哪些设置,以查看为什么输出窗口中没有出现MyLog.Debug行的输出行?

namespace IntranetSync
{
    public class MyDataSet
    {
        private static readonly ILog MyLog = LogManager.GetLogger(typeof(MyDataSet));

        public static MyDataSet GetInstance()
        {
            MyLog.Debug("MyDataSet GetInstance() =====================================");
            if (myDataSet == null)
            {
                myDataSet = new MyDataSet();
            }
            return myDataSet;
        }
.
.
.

PS。我一直在做的重做log4net存储库初始化是将以下行作为私有变量放在我使用日志记录的类中 - 这样可以吗?

    static class Program
    {
        private static readonly ILog MyLog = LogManager.GetLogger(typeof(MainForm));
.
.
.

    public class Coordinator
    {
        private static readonly ILog MyLog = LogManager.GetLogger(typeof(MainForm));
.
.
.

    public class MyDataSet
    {
        private static readonly ILog MyLog = LogManager.GetLogger(typeof(MyDataSet));
.
.
.

1 个答案:

答案 0 :(得分:2)

我猜测第一次调用GetInstance方法在初始化log4net存储库之前发生。你明确初始化你的存储库,如果是这样的话:在哪里?