欲掩不从心 2019-12-28 15:07 采纳率: 33.3%
浏览 620
已采纳

log4net 生成环境不自动保存日志文件

描述问题:
在开发环境下。log4net运行正常,每分钟产生一个日志文件
部署后,每次启动IIS会自动保存上一次的日志文件并生成txt文件,

log4net 配置文件

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
  </configSections>

  <log4net>
    <!--定义输出到一个固定文件中-->
    <appender name="FileAppender" type="log4net.Appender.FileAppender">
      <file value="log/log.txt" />
      <appendToFile value="true" />
      <layout type="log4net.Layout.PatternLayout">
        <!--每条日志末尾的文字说明-->
        <header value="&#13;&#10;[============================应用程序日志开始============================ ]&#13;&#10;" />
        <footer value="&#13;&#10;[ ===========================应用程序日志结束=============================]&#13;&#10;" />
        <!--输出格式-->
        <!--样例:2008-03-26 13:42:32,111 [10] INFO  Log4NetDemo.MainClass [(null)] - info-->
        <conversionPattern value="%newline%newline记录时间:%date 线程ID:[%thread] 日志级别:%-5level 类名或程序集名:%logger  %newline   property:[%property{NDC}] - 描述:%message%newline" />
      </layout>
    </appender>

    <!--定义输出到文件中,循环创建日志文件,以日期命名-->
    <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
      <!--定义文件存放位置      保存当前日期的日志,当第二天新日志产生时会把当前日期的日志保存备份-->
      <file value="log/log" />
      <!--禁止覆盖原有文件,true:覆盖原有文件-->
      <appendToFile value="false" />
      <rollingStyle value="Date" />
      <!--以天为单位进行日志滚动,保存过去日期的日志-->
      <datePattern value="yyyy-MM-dd-HHmm&quot;.txt&quot;" />
      <layout type="log4net.Layout.PatternLayout">
        <!--每条日志末尾的文字说明-->
        <header value="&#13;&#10;[============================应用程序日志开始============================ ]&#13;&#10;" />
        <footer value="&#13;&#10;[ ===========================应用程序日志结束=============================]&#13;&#10;" />
        <!--输出格式-->
        <!--样例:2008-03-26 13:42:32,111 [10] INFO  Log4NetDemo.MainClass [(null)] - info-->
        <conversionPattern value="%newline%newline记录时间:%date 线程ID:[%thread] 日志级别:%-5level 类名或程序集名:%logger  %newline   property:[%property{NDC}] - 描述:%message%newline" />
      </layout>
    </appender>

    <!--定义输出到控制台命令行中-->
    <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
      <layout type="log4net.Layout.PatternLayout">
        <!--输出格式-->
        <conversionPattern value="%newline时间:%date 线程ID:[%thread] 日志级别:%-5level 类名或程序集名:%logger  %newline property:[%property{NDC}] - 描述:%message%newline" />
      </layout>
    </appender>

    <!--定义以不同颜色输出到控制台-->
    <appender name="ManagedColoredConsoleAppender" type="log4net.Appender.ManagedColoredConsoleAppender">
      <mapping>
        <level value="ERROR" />
        <foreColor value="DarkRed" />
      </mapping>
      <mapping>
        <level value="WARN" />
        <foreColor value="Yellow" />
      </mapping>
      <mapping>
        <level value="INFO" />
        <foreColor value="DarkGray" />
      </mapping>
      <mapping>
        <level value="DEBUG" />
        <foreColor value="DarkGreen" />
      </mapping>

      <layout type="log4net.Layout.PatternLayout">
        <!--输出格式-->
        <conversionPattern value="%newline时间:%date 线程ID:[%thread] 日志级别:%-5level 类名或程序集名:%logger  %newline property:[%property{NDC}] - 描述:%message%newline" />
      </layout>
    </appender>

    <!--定义输出到数据库中,这里举例输出到Access数据库中,数据库为log4net.mdb(可以自定义路径)-->
    <appender name="AdoNetAppender_Access" type="log4net.Appender.AdoNetAppender">
      <connectionString value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=logDB/log4net.mdb" />
      <commandText value="INSERT INTO LogDetails ([LogDate],[Thread],[Level],[Logger],[Message]) VALUES (@logDate, @thread, @logLevel, @logger,@message)" />
      <!--定义各个参数-->
      <parameter>
        <parameterName value="@logDate" />
        <dbType value="String" />
        <size value="240" />
        <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%date" />
        </layout>
      </parameter>
      <parameter>
        <parameterName value="@thread" />
        <dbType value="String" />
        <size value="240" />
        <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%thread" />
        </layout>
      </parameter>
      <parameter>
        <parameterName value="@logLevel" />
        <dbType value="String" />
        <size value="240" />
        <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%level" />
        </layout>
      </parameter>
      <parameter>
        <parameterName value="@logger" />
        <dbType value="String" />
        <size value="240" />
        <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%logger" />
        </layout>
      </parameter>
      <parameter>
        <parameterName value="@message" />
        <dbType value="String" />
        <size value="240" />
        <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%message" />
        </layout>
      </parameter>
    </appender>
    <!--定义日志的输出媒介,下面定义日志以四种方式输出。也可以下面的按照一种类型或其他类型输出。-->

    <root>
      <!--控制级别,由低到高: ALL|DEBUG|INFO|WARN|ERROR|FATAL|OFF
      比如定义级别为INFO,则INFO级别向下的级别,比如DEBUG日志将不会被记录
      如果没有定义LEVEL的值,则缺省为DEBUG-->
      <level value="ALL"/>
      <!--文件形式记录日志-->
      <appender-ref ref="RollingFileAppender" />
      <!--控制台控制显示日志-->
      <appender-ref ref="ConsoleAppender" />
      <!--控制台以不同颜色显示日志-->
      <appender-ref ref="ManagedColoredConsoleAppender" />
      <!--定义输出到数据库中。 如果不启用相应的日志记录,可以通过这种方式注释掉-->
      <!--<appender-ref ref="AdoNetAppender_Access" />-->
    </root>
  </log4net>
</configuration>
  • 写回答

1条回答 默认 最新

  • 关注
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动
  • ¥20 对于工程问题的非线性数学模型进行线性化
  • ¥15 Mirare PLUS 进行密钥认证?(详解)
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
  • ¥20 想用ollama做一个自己的AI数据库
  • ¥15 关于qualoth编辑及缝合服装领子的问题解决方案探寻
  • ¥15 请问怎么才能复现这样的图呀