C#log4net引入配置文件后,数据库连接找不到并且有很多 未能找到元素“appender”的架构信息

今天用了log4net加入配置信息后,数据库链接的字符串就报错,无法连接数据库。后来发现,只需要调整一下位置就可以了

configSections 节点必须写在 connectionStrings 节点之前,这样数据库就可以正常连接

。如图

复制代码
<?xml version="1.0"?>
<configuration>
  <!--必须写在数据库连接字符串之前,不然会报错-->
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
  </configSections>
  <!--必须写在数据库连接字符串之前,不然会报错-->

  <!--数据库连接字符串-->
  <connectionStrings>
    <add name="mssql" connectionString="Server=数据库服务器地址;Database=数据库名称;uid=数据库用户名;pwd=你的密码"/>
  </connectionStrings>
  <appSettings>
    <add key="BackDBName" value="db_philipsGKJ"/>
  </appSettings>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
  </startup>
  <log4net>
    <!-- 定义输出到文件中 -->
    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
      <!--定义文件存放位置-->
      <file value="log\\"/>
      <!--日志名称-->
      <file value="errorLog.txt"/>
      <appendToFile value="true"/>
      <rollingStyle value="Date"/>
      <datePattern value="yyyy\\yyyyMM\\yyyyMMdd'.txt'"/>
      <staticLogFileName value="false"/>

      <!--日志最大可备份数-->
      <maxSizeRollBackups value="10"/>
      <!--日志文件大小-->
      <maximumFileSize value="1024KB"/>
      <layout type="log4net.Layout.PatternLayout">
        <!--每条日志末尾的文字说明-->
        <!--输出格式-->
        <!--样例:2008-03-26 13:42:32,111 [10] INFO  Log4NetDemo.MainClass [(null)] - info-->
        <conversionPattern value="%newline %n记录时间:%date %n线程ID:[%thread] %n日志级别:  %-5level %n出错类:%logger property: [%property{NDC}] - %n错误描述:%message%newline %n"/>
      </layout>
    </appender>
    <root>
      <level value="ERROR"/>
      <!--文件形式记录日志-->
      <appender-ref ref="RollingLogFileAppender"/>
    </root>
  </log4net>
</configuration>
复制代码

然后第二个问题,引入配置文件后 ,错误列表会出现这么多消息,可以正常运行,但是,看到错误列表非空,强迫症表示受不了。

解救方法:关闭app.config选项卡~~~就好了。

 

posted @   _Vincent  阅读(2397)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示