log4net不支持.Net核心2.0中的AdoNetAppender?
我在执行log4net AdoNetAppender在asp.net核心2.0,但我想它不支持。我已经实施了log4net RollingFileAppender在核心2.0 &它使用log4.net配置成功工作。因此,如果log4net AdoNetAppender在核心2.0中不支持,是否有任何其他方式在核心2.0中插入日志到sql数据库?log4net不支持.Net核心2.0中的AdoNetAppender?
谢谢
我有同样的问题。我已通过以下方式修复了它:
将log4net.config.xml文件添加到带有appender的ASP.NET Core项目。在这个文件中AdoNetAppender您可以指定connectionString
或connectionStringName
但它没有意义,因为连接将是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河
我面临着同样的问题,并在.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
使用三维派对工具使用三维派对工具 –
@ Pr.Dumbledor它的答案解决了Vishal面临的问题。我也提供了其他选项。 – prashant
log4ne t.Appender.AdoNetAppender目前在.net core 2.0中不受支持。 – prashant
@prashant你在说什么?我在项目中使用这个代码,目标为.netcoreapp2.0,但当然包的log4net的目标是461.一切正常工作,该解决方案 – Marusyk