NLog.Config 从 IIS Express 文件夹而不是 Content Root 读取
NLog.Config read from IIS Express folder instead of Content Root
我正在编写一个 ASP.NET 核心 2.2 服务,它使用 Common.Logging 和 NLog。
我在 appsettings.json 文件中使用 NLog 连接了 Common.Logging:
"LogConfiguration": {
"factoryAdapter": {
"type": "Common.Logging.NLog.NLogLoggerFactoryAdapter, Common.Logging.NLog45",
"arguments": {
"configType": "FILE",
"configFile": "~/nlog.config"
}
}
}
并且在 Startup.cs 中我添加了:
var logConfiguration = new LogConfiguration();
Configuration.GetSection("LogConfiguration").Bind(logConfiguration);
LogManager.Configure(logConfiguration);
当我启动我的服务时,代码命中 logger.Info、I get a The type initializer for '...' threw an exception
。
对于 NLog,这通常意味着没有找到目标。我用Procmon.exe搜索了nlog.config的访问失败,发现了一个尝试读取:C:\Program Files\IIS Express\~\nlog.config.
如何让 IIS Express 在内容根目录中查找 nlog.config?
为什么不像 PullRequest 中所示那样做:
{
"LogConfiguration": {
"factoryAdapter": {
"type": "Common.Logging.NLog.NLogLoggerFactoryAdapter, Common.Logging.NLog45",
"arguments": {
"configType": "INLINE",
}
}
}
}
并让 NLog 4.5 加载自己的 LoggingConfiguration。
https://github.com/net-commons/common-logging/pull/176
您还可以从所需位置显式记录 NLog.config:
https://github.com/NLog/NLog/wiki/Explicit-NLog-configuration-loading
我正在编写一个 ASP.NET 核心 2.2 服务,它使用 Common.Logging 和 NLog。
我在 appsettings.json 文件中使用 NLog 连接了 Common.Logging:
"LogConfiguration": {
"factoryAdapter": {
"type": "Common.Logging.NLog.NLogLoggerFactoryAdapter, Common.Logging.NLog45",
"arguments": {
"configType": "FILE",
"configFile": "~/nlog.config"
}
}
}
并且在 Startup.cs 中我添加了:
var logConfiguration = new LogConfiguration();
Configuration.GetSection("LogConfiguration").Bind(logConfiguration);
LogManager.Configure(logConfiguration);
当我启动我的服务时,代码命中 logger.Info、I get a The type initializer for '...' threw an exception
。
对于 NLog,这通常意味着没有找到目标。我用Procmon.exe搜索了nlog.config的访问失败,发现了一个尝试读取:C:\Program Files\IIS Express\~\nlog.config.
如何让 IIS Express 在内容根目录中查找 nlog.config?
为什么不像 PullRequest 中所示那样做:
{
"LogConfiguration": {
"factoryAdapter": {
"type": "Common.Logging.NLog.NLogLoggerFactoryAdapter, Common.Logging.NLog45",
"arguments": {
"configType": "INLINE",
}
}
}
}
并让 NLog 4.5 加载自己的 LoggingConfiguration。
https://github.com/net-commons/common-logging/pull/176
您还可以从所需位置显式记录 NLog.config:
https://github.com/NLog/NLog/wiki/Explicit-NLog-configuration-loading