log4 配置日期為滾動類型(每天產生一個日志文件)


控制台:

App.config,log4的配置,同時要在E:\MyWork\log4日志測試\   建立對應文文件夾存放log文件

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
    <!--log4net組件-->
  </configSections>
  <log4net>
    <root>
      <!--從高到低的七個級別:OFF,FATAL,RROR,WARN,INFO,DEBUG,ALL-->
      <level value="ALL"/>
    </root>
    <!--配置程序報錯專用-->
    <logger name="testLog">
      <level value="ALL"/>
      <appender-ref ref="testLogApp"/>
    </logger>
    <appender name="testLogApp" type="log4net.Appender.RollingFileAppender, log4net">
      <!--日志路徑-->
      <param name="File" value="E:\MyWork\log4日志測試\"/>
      <!--日期為滾動類型(每天產生一個日志文件)-->
      <param name="RollingStyle" value="Date"/>
      <!--追加方式-->
      <param name="AppendToFile" value="true"/>
      <!--日志文件名-->
      <param name="DatePattern" value="yyyy-MM-dd&quot;.log&quot;"/>
      <!--關閉固定文件方式-->
      <param name="StaticLogFileName" value="false"/>
      <!--記錄格式-->
      <layout type="log4net.Layout.PatternLayout, log4net">
        <!--%m:消息內容-->
        <!--%n:換行-->
        <!--%d:輸出時間-->
        <!--%p:級別-->
        <!--%c:類名-->
        <!--%F:文件名-->
        <param name="ConversionPattern" value="[%d] %p - %m%n"/>
      </layout>
      <!--過濾器-->
      <filter type="log4net.Filter.LevelRangeFilter, log4net">
        <param name="LevelMin" value="ALL"/>
        <param name="LevelMax" value="OFF"/>
      </filter>
    </appender>
  </log4net>

  <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
    </startup>
</configuration>

 

Program:

        static void Main(string[] args)
        {
            log4net.Config.DOMConfigurator.Configure(); //不加這句話日志不會生成
            log4net.ILog testLog = log4net.LogManager.GetLogger("testLog");
            try
            {
                throw new ApplicationException("測試log4,我是控制台拋出的異常!!");
            }
            catch (Exception ex)
            {
                testLog.Info("******************************* begin static void Main(string[] args)程序異常 ********************************************");
                testLog.Info(ex);
                testLog.Info("******************************* end static void Main(string[] args)程序異常 ********************************************");

            }
        }

 

結果:

 

 

webform程序配置

web.config

<?xml version="1.0" encoding="utf-8"?>
<!--
  有關如何配置 ASP.NET 應用程序的詳細信息,請訪問
  http://go.microsoft.com/fwlink/?LinkId=169433
  -->
<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
    <!--log4net組件-->
  </configSections>
  <log4net>
    <root>
      <!--從高到低的七個級別:OFF,FATAL,RROR,WARN,INFO,DEBUG,ALL-->
      <level value="ALL"/>
    </root>
    <!--配置程序報錯專用-->
    <logger name="testLog">
      <level value="ALL"/>
      <appender-ref ref="testLogApp"/>
    </logger>
    <appender name="testLogApp" type="log4net.Appender.RollingFileAppender, log4net">
      <!--日志路徑-->
      <param name="File" value="E:\MyWork\log4日志測試\"/>
      <!--日期為滾動類型(每天產生一個日志文件)-->
      <param name="RollingStyle" value="Date"/>
      <!--追加方式-->
      <param name="AppendToFile" value="true"/>
      <!--日志文件名-->
      <param name="DatePattern" value="yyyy-MM-dd&quot;.log&quot;"/>
      <!--關閉固定文件方式-->
      <param name="StaticLogFileName" value="false"/>
      <!--記錄格式-->
      <layout type="log4net.Layout.PatternLayout, log4net">
        <!--%m:消息內容-->
        <!--%n:換行-->
        <!--%d:輸出時間-->
        <!--%p:級別-->
        <!--%c:類名-->
        <!--%F:文件名-->
        <param name="ConversionPattern" value="[%d] %p - %m%n"/>
      </layout>
      <!--過濾器-->
      <filter type="log4net.Filter.LevelRangeFilter, log4net">
        <param name="LevelMin" value="ALL"/>
        <param name="LevelMax" value="OFF"/>
      </filter>
    </appender>
  </log4net>
  
  <system.web>
    <compilation debug="true" targetFramework="4.5" />
    <httpRuntime targetFramework="4.5" />
  </system.web>
</configuration>

 

log4net.Config.DOMConfigurator.Configure();//這句注冊的語句最好寫在Global.asax全局訪問類里,webform程序不寫在里面每個頁面都要寫。

Global:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.SessionState;

namespace log4.test.Webform
{
    public class Global : System.Web.HttpApplication
    {
        protected void Application_Start(object sender, EventArgs e)
        {
            log4net.Config.DOMConfigurator.Configure(); 
        }
    }
}

 

WebForm1.aspx:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="log4.test.Webform.WebForm1" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:Button ID="btnsave" runat="server" Text="testLog4" OnClick="btnsave_Click" />
    </div>
    </form>
   
</body>
</html>

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace log4.test.Webform
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        protected readonly log4net.ILog testLog = log4net.LogManager.GetLogger("testLog");
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void btnsave_Click(object sender, EventArgs e)
        {
            try
            {
                throw new ApplicationException("測試log4,我是webform拋出的異常!!");
            }
            catch (Exception ex)
            {
                testLog.Info("******************************* begin btnsave_Click(object sender, EventArgs e)點擊事件異常 ********************************************");
                testLog.Info(ex);
                testLog.Info("******************************* end btnsave_Click(object sender, EventArgs e)點擊事件異常 ********************************************");

            }
        }
    }
}

 

源碼下載


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM