在我的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));
.
.
.
答案 0 :(得分:2)
我猜测第一次调用GetInstance
方法在初始化log4net存储库之前发生。你明确初始化你的存储库,如果是这样的话:在哪里?