2017-10-10 125 views
3

我在執行log4net AdoNetAppenderasp.net核心2.0,但我想它不支持。我已經實施了log4net RollingFileAppender在覈心2.0 &它使用log4.net配置成功工作。因此,如果log4net AdoNetAppender在覈心2.0中不支持,是否有任何其他方式在覈心2.0中插入日誌到sql數據庫?log4net不支持.Net核心2.0中的AdoNetAppender?

謝謝

回答

-1

我有同樣的問題。我已通過以下方式修復了它:

log4net.config.xml文件添加到帶有appender的ASP.NET Core項目。在這個文件中AdoNetAppender您可以指定connectionStringconnectionStringName但它沒有意義,因爲連接將是null

因此,連接字符串添加到appsettings.json代替

"ConnectionStrings": { 
    "Log": "Data Source=localhost\\SQLEXPRESS;Initial Catalog=Log.Database;User ID=sa;Password=;MultipleActiveResultSets=True" 
} 

然後配置

ILoggerRepository logRepository = log4net.LogManager.GetRepository(Assembly.GetExecutingAssembly()); 
XmlConfigurator.Configure(logRepository, new FileInfo("log4net.config"));\ 

,並指定連接字符串手動

ILog _databaseLogger = log4net.LogManager.GetLogger("DBLogger"); 
var repository = _databaseLogger?.Logger.Repository; 
if (repository != null) 
{ 
    _adoAppender = repository.GetAppenders() 
     .FirstOrDefault(a => a is AdoNetAppender) as AdoNetAppender; 

    if (_adoAppender != null && string.IsNullOrEmpty(_adoAppender.ConnectionStringName)) 
    { 
     _adoAppender.ConnectionString = "some connection string from appsettings.json"; 
     _adoAppender.ActivateOptions(); 
    } 
} 

ActivateOptions()呼籲重新初始化appende河

+0

log4ne t.Appender.AdoNetAppender目前在.net core 2.0中不受支持。 – prashant

+0

@prashant你在說什麼?我在項目中使用這個代碼,目標爲.netcoreapp2.0,但當然包的log4net的目標是461.一切正常工作,該解決方案 – Marusyk

-1

我面臨着同樣的問題,並在.NET核心解決方案採用這種NuGet包解決

https://www.nuget.org/packages/MicroKnights.Log4NetAdoNetAppender

您可以找到有關如何設置這對

https://github.com/microknights/Log4NetAdoNetAppender

更多信息其他選項可以參考https://svn.apache.org/repos/asf/logging/log4net/tags/log4net-1_2_9/src/Appender/AdoNetAppender.cs

+0

使用三維派對工具使用三維派對工具 –

+0

@ Pr.Dumbledor它的答案解決了Vishal面臨的問題。我也提供了其他選項。 – prashant