log4net:ERROR Failed to find configuration section 'log4net' in the application's .config file. Check your .config file for the <log4net> and <configSections> elements. The configuration section should look like: <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
因為我在我的程式
項目>Properties>AssemblyInfo.cs
AssemblyInfo.cs 檔案裡添加了
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", ConfigFileExtension = "config", Watch = true)]
并且還在我的LogHelper.cs檔案裡添加了
log4net.Config.XmlConfigurator.Configure();//加載配置檔案
感覺上好像是某種東西沖突了,造成的問題
修改後的完整檔案:
AssemblyInfo.cs 這個檔案沒懂
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// 有關程式集的一般資訊由以下
// 控制。更改這些特性值可修改
// 與程式集關聯的資訊。
[assembly: AssemblyTitle("Crawler")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Microsoft")]
[assembly: AssemblyProduct("Crawler")]
[assembly: AssemblyCopyright("Copyright © Microsoft 2019")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", ConfigFileExtension = "config", Watch = true)]
// 将 ComVisible 設定為 false 會使此程式集中的類型
//對 COM 元件不可見。如果需要從 COM 通路此程式集中的類型
//請将此類型的 ComVisible 特性設定為 true。
[assembly: ComVisible(false)]
// 如果此項目向 COM 公開,則下列 GUID 用于類型庫的 ID
[assembly: Guid("adf24768-a0ea-45bf-a10f-f8d2d3be9a4e")]
// 程式集的版本資訊由下列四個值組成:
//
// 主版本
// 次版本
// 生成号
// 修訂号
//
// 可以指定所有值,也可以使用以下所示的 "*" 預置版本号和修訂号
// 方法是按如下所示使用“*”: :
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
LogHelper.cs檔案 屏蔽了一行代碼
using log4net;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Crawler.log
{
public static class LogHelper
{
private static ILog log;
static LogHelper()
{
//log4net.Config.XmlConfigurator.Configure();//加載配置檔案
log = log4net.LogManager.GetLogger(typeof(LogHelper));//通過反射擷取日志對象執行個體
}
/// <summary>
/// BUG記錄
/// </summary>
/// <param name="info"></param>
public static void DeBug(string info)
{
log.Debug(info);
}
/// <summary>
/// 記錄資訊
/// </summary>
/// <param name="info"></param>
public static void Info(string info)
{
log.Info(info);
}
/// <summary>
/// 記錄錯誤
/// </summary>
/// <param name="info"></param>
public static void Error(string info)
{
log.Error(info);
}
public static void Error(string info, Exception ex)
{
log.Error(info, ex);
}
/// <summary>
/// 記錄警告
/// </summary>
/// <param name="info"></param>
public static void Warn(string info)
{
log.Warn(info);
}
}
}
解釋:
你在某處調用XmlConfigurator.Configure()
删除這些調用,隻添加[assembly:log4net.Config.XmlConfigurator(Watch = true)]屬性.
通常在單獨的檔案中配置log4net是比較容易的.建立一個檔案log4net.config并将您的屬性更改為:
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Log4Net.config",Watch = true)]
删除您的web.config中的部分.