简明log4j配置教程

先准备好log4j需要对应的开发包:

apache-log4j-extras-1.2.17.jar

slf4j-api-1.6.1.jar

slf4j-log4j12-1.6.1.jar

然后就是在项目中准备一个log4j.xml开发文件:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j=‘http://jakarta.apache.org/log4j/‘>
    <!-- appender -->
    <!-- STDOUT -->
    <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d %p [%c] - %m%n" />
        </layout>
    </appender>

    <!-- 设置按天滚动方式生成日志文件 -->
    <!-- 将日志写到文件中 -->
    <appender name="biFormat" class="org.apache.log4j.rolling.RollingFileAppender">
    <!-- 设置日志编码 -->
        <param name="Encoding" value="UTF-8" />
        <!-- 设置按天滚动方式生成日志文件 -->
        <rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy">
            <param name="FileNamePattern" value="/opt/test/log/bi_%d{yyyyMMdd}.log" />
        </rollingPolicy>
        <!-- 设置日志内容格式  -->
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d{yyyy/MM/dd HH:mm:ss.SSS} [%F.%L]: %m [%t]%n" />
        </layout>
    </appender>

    <!-- 设置按天滚动方式生成日志文件 -->
    <!-- 将日志写到Linux系统日志中 -->
    <appender name="syslogger" class="org.apache.log4j.net.SyslogAppender">
    <!-- 设置阈值为ERROR级别,低于ERROR级别的日志将不会写入到系统中 -->
        <param name="Threshold" value="ERROR" />
        <param name="SyslogHost" value="192.168.172.140" />
        <param name="Facility" value="USER" />
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="bitool[%F.%L]: %m[%t]%n" />
        </layout>
    </appender>

    <!-- 设置logger日志名称,在程序中引用 -->
    <logger name="logfile">
        <!-- 设置日志级别为DEBUG级别 -->
        <level value="debug" />
        <appender-ref ref="biFormat" />
        <appender-ref ref="syslogger" />
    </logger>
</log4j:configuration>

关于上面日志格式常用占位符解释:

%d: 当前时间,如果要指定格式,则可以yyyy MM dd HH mm ss SSS 代表 年、月、日、时、分、秒、毫秒

%F: 日志所在代码所在文件

%L: 日志所在的行数

%m: 消息主体

%t: 程序所在线程

%n: 换行

%p: 当前日志级别

示例程序代码:

package org.lyk.action;

import java.text.SimpleDateFormat;
import java.util.Date;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

@Controller
@RequestMapping("/test/*")
public class Test
{
    private Logger logger = LoggerFactory.getLogger("logfile");
    @RequestMapping("testDemo")
    public ModelAndView testDemo(String msg)
    {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
        logger.info("This is for log file " + sdf.format(new Date()));
        logger.error("This is for sys log file " + sdf.format(new Date()));
        return new ModelAndView("/index.jsp");
    }
}

输出效果

日志文件:

Linux syslog:

程序代码:

package org.lyk.action;

import java.text.SimpleDateFormat;
import java.util.Date;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

@Controller
@RequestMapping("/test/*")
public class Test
{
    private Logger logger = LoggerFactory.getLogger("logfile");
    @RequestMapping("testDemo")
    public ModelAndView testDemo(String msg)
    {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
        logger.info("This is for log file " + sdf.format(new Date()));
        logger.error("This is for sys log file " + sdf.format(new Date()));
        return new ModelAndView("/index.jsp");
    }
}

https://pan.baidu.com/s/1kVghs83

欢迎加入QQ群参与讨论. 422683877

时间: 2024-10-11 05:32:28

简明log4j配置教程的相关文章

Log4J入门教程(二) 参数讲解

继续接着Log4J入门教程(一)中的例子进行讲解,其中log4j.properties中的内容为    Log4j的三个重要组件—— Loggers, Appenders, Layouts ,这三个组件协同的工作,使得开发者能够依据信息类别和级别去纪录信息,并能够运行期间,控制信息记录的方式已经日志存放地点. Log4j中有三个主要的组件,它们分别是 Logger.Appender和Layout,Log4j 允许开发人员定义多个Logger,每个Logger拥有自己的名字,Logger之间通过名

简明adb使用教程

简明adb使用教程 @(安卓测试工具集) adb简介 adb介绍 全称是:Android Debug Bridge,即安卓调试桥,是安卓sdk的一个工具: B/S结构 adb工具是一个客户端-服务器的应用程序,包含三个方面: 1. client:运行在PC上.其实就是shell,用来发送命令给Server.发送命令时,首先检测PC上有没有启动Server,如果后台没有Server,则自动启动一个Server,然后将命令发送到Server,并不关心命令发送过去以后会怎样. 2. daemon:一个

一条数据的HBase之旅,简明HBase入门教程-Write全流程

如果将上篇内容理解为一个冗长的"铺垫",那么,从本文开始,剧情才开始正式展开.本文基于提供的样例数据,介绍了写数据的接口,RowKey定义,数据在客户端的组装,数据路由,打包分发,以及RegionServer侧将数据写入到Region中的全部流程. NoSQL漫谈 本文整体思路 前文内容回顾 示例数据 HBase可选接口介绍 表服务接口介绍 介绍几种写数据的模式 如何构建Put对象(包含RowKey定义以及列定义) 数据路由 Client侧的分组打包 Client发RPC请求到Regi

Cocos2d-x 3.x 全平台新手开发配置教程

本文为Cocos2d-x 3.x 全平台(Android,iOS)新手开发配置教程攻略,希望对大家有所帮助.因为这篇文章是面对新手的.所以有些地方会啰嗦一些,请勿见怪.如果教程中有错误,欢迎指正.如果在配置开发平台时还遇到问题,欢迎大家讨论. 本文所使用的环境是PC(Win7),HTC G18,MacBook Air 以及 Mini iPad. 一.通用准备工作 1.安装Cocos2d-x 3.1 在Cocos2d官网上下载Cocos2d-x 3.1引擎,下载后解压缩. 2.安装Eclipse与

log4j配置后行号乱码显示为?问号

debug="true"  classpathref="accrual.path" > 首发于 http://blog.xfuse.cn 参考文档 http://ant.apache.org/manual/CoreTasks/javac.html Log4j配置 log4j.appender.C1.layout.ConversionPattern=%F(%L)-- %-4r %-5p [%t] %37c %3x - %m%n 如果是用JAVAC编绎,那么直接加

OpenGL 4.3配置教程

OpenGL 4.3配置教程 下载开发包 需要下载的开发包主要包含如下几个组件:freeglut+glew+ OpenGL.Development.Cookbook+源码+GLM+SOIL. Opengl SDK并不存在,寻找真正的OpenGL开发工具 1.下载 这些软件需要FQ才能下载,所以提供了完整压缩包: freeglut (latest version available from: http://freeglut.sourceforge.net) GLEW (latest versio

Mac下Android studio 之NDK配置教程

Mac下Android studio 之NDK配置教程(一) 1.概述 最近项目全线转移到Mac下使用使用Android studio开发.遇到关键代码封装到 ***native***层,此时在win下的NDK配置步骤全部失效. 为此,花费了大量时间用来查阅资料,在此,记录下来,分享给大家供以后配置中作为参考. 2.环境 本人使用的开发配置 是:MAC OS 10.10 +androioid studio 1.2+android-ndk-r10e-darwin-x86_64+git .其他配置类

Tomcat安装及配置教程

用来进行web开发的工具有很多,Tomcat是其中一个开源的且免费的java Web服务器,是Apache软件基金会的项目.电脑上安装配置Tomcat的方法和java有些相同,不过首先需要配置好java的环境才行. 工具/原料 Tomcat7.0 eclipse java环境的配置 1 java环境的配置应该都学过吧,这里简单的讲一下. 下载安装java JDK,注意安装的路径,我们需要进行环境变量的配置. 2 安装完成以后,配置环境变量 环境变量的配置这里就以win7为例:右击计算机——属性—

Git配置教程

Git使用教程 github不是特别的稳定,而且英文太多难以辨别,所以使用了JD的开源git. 在我的理解来开git像是一个虚拟主机或者一个ftp服务器. 常见的端口: ftp 21tcp ssh 22tcp www 80 dns 53tcp 53udp 我们可以使用ssh命令测试链接虚拟主机 #ssh-T [email protected] 整理过程: 1.先创建本地仓库 2.把文件添加进本地仓库 3.把本地的git链接到远程的仓库 4.把本地仓库的内容上传到远程仓库的某个分支 以下教程转载于