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)点击事件异常 ********************************************");

            }
        }
    }
}

源码下载

时间: 2024-10-12 05:48:49

log4 配置日期为滚动类型(每天产生一个日志文件)的相关文章

log4j配置每天生成一个日志文件

首先需要配置web.xml里面: <servlet-name>log4j-init</servlet-name> <servlet-class>com.free.core.util.Log4j</servlet-class> <init-param> <param-name>log4j</param-name> <param-value>/WEB-INF/classes/logxml/log4j.xml<

Log4 配置简介

本文主要解释log4j的配置文件各个配置项的含义,内容是从网上转载的 第1章. Log4j 的优点 Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的:我们也可以控制每一条日志的输出格式:通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程.最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码. log4j的好处在于: 1) 通过修改配置文件,就可以决定log信息的目的地——控制台.文件.GUI组件.甚至是套

log4j配置参数详解——按日志文件大小、日期切分日志文件

项目中尽管对log4j有基本的配置,例如按天生成日志文件以作区分,但如果系统日志文件过大,则就需要考虑以更小的单位切分或者其他切分方式.下面就总结一下log4j常用的配置参数以及切分日志的不同方式. 一.基本配置解析 常用配置1: [java] view plain copy #日志级别,还可以log4j.rootLogger=INFO,file2,file3 指定file2.3的输出文件 log4j.rootLogger=info,exception,thread #info #每一天产生1个

自定义log的类型,并且将其类型放进对应的文件中

#把所有的INFO信息输出到log名字为file当中. log4j.rootLogger=INFO,file #%m 输出代码中指定的消息 #%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL #%r 输出自应用启动到输出该log信息耗费的毫秒数 #%c 输出所属的类目,通常就是所在类的全名 #%t 输出产生该日志事件的线程名 #%n 输出一个回车换行符,Windows平台为"rn",Unix平台为"n" #%d 输出日志时间点的日期或时间,

配置日志文件

org.apache.log4j.Logger详解 1.概述 1.1. 背景 在应用程序中添加日志记录总的来说基于三个目的:监视代码中变量的变化情况,周期性的记录到文件中供其他应用进行统计分析工作:跟踪代码运行时轨迹,作为日后审计的依据:担当集成开发环境中的调试器的作用,向文件或控制台打印代码的调试信息. 最普通的做法就是在代码中嵌入许多的打印语句,这些打印语句可以输出到控制台或文件中,比较好的做法就是构造一个日志操作类来封装此类操作,而不是让一系列的打印语句充斥了代码的主体. http://l

Log4j配置的经典总结,打印日志文件,日志存库

    一.介绍 Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制 日志信息输送的目的地是控制台.文件.GUI组件.甚至是套接口服务 器.NT的事件记录器.UNIX Syslog守护进程等:我们也可以控制每一条日志的输出格式:通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程. Log4j 由三个重要的组件构成:日志信息的优先级,日志信息的输出目的地,日志信息的输出格式.日志信息的优先级从高到低有ERROR.WARN. INFO.DEBUG,分别用来

日志文件配置大全

java日志文件log4j.properties配置详解 一.Log4j配置 第一步:加入log4j-1.2.8.jar到lib下. 第二步:在CLASSPATH下建立log4j.properties.内容如下: 放在src下的话就不用配置 否则得去web.xml里面配置一个Listener 参考: log4j.rootCategory=INFO, stdout , R log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.ap

log4j配置输出到多个日志文件

通常我们项目里,有一些重要的日志想单独的输出到指定的文件,而不是全总输出到系统的日志文件中.那么我们log4j为我们提供了这种功能,以下我们来一步一步看是怎么做的.这里以property的配置方式写.xml方式类似,想了解的,能够看官方文档. 这里測试的项目包结构例如以下: log4j 主要由三部分组成:Loggers, Appenders 和Layouts,(appender 能够理解为输出的目的地) 咱们的log4j.properties或log4j.xml 里能够配置多个logger, 每

log4j配置输出到多个日志文件(转)

參考资料:http://logging.apache.org/log4j/1.2/manual.html 通常我们项目里,有一些重要的日志想单独的输出到指定的文件,而不是全总输出到系统的日志文件中.那么我们log4j为我们提供了这种功能,以下我们来一步一步看是怎么做的.这里以property的配置方式写.xml方式类似,想了解的,能够看官方文档. 这里測试的项目包结构例如以下: log4j 主要由三部分组成:Loggers, Appenders 和Layouts,(appender 能够理解为输