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中的部分.
来源:CSDN
作者:cplvfx
链接:https://blog.csdn.net/cplvfx/article/details/103808959