3 回答

TA貢獻1860條經(jīng)驗 獲得超9個贊
我認為這里的問題是您的log變量在調用構造函數(shù)之前被初始化。所以基本上你在打電話LogManager.GetLogger之前打電話XmlConfigurator.Configure()
log在配置 log4net 后嘗試在構造函數(shù)中進行初始化,看看是否能解決您的問題。
public Service1()
{
InitializeComponent();
XmlConfigurator.Configure();
log = LogManager.GetLogger(typeof(Service1));
}

TA貢獻1812條經(jīng)驗 獲得超5個贊
添加另一個答案,因為我之前的預感似乎是錯誤的(或者您實際上在這里有兩個問題)。假設您發(fā)布了整個 app.config 文件,看起來您并沒有在其中的任何地方聲明 log4net 配置部分:
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
也許這就是問題所在?

TA貢獻2016條經(jīng)驗 獲得超9個贊
在我的特殊情況下,我們總是在類構造函數(shù)上初始化 Log4Net 時設置 app.config 文件:
log4net.Config.XmlConfigurator.Configure(new Uri(Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "YouAppConfigFile.config")));
Log = log4net.LogManager.GetLogger("ServiceClass1");
Log.Info("ServiceClass1 Started!!!");
- 3 回答
- 0 關注
- 408 瀏覽
添加回答
舉報