测试log4j的项目结构

Log4j.properties的路径为    src/config/log4j

Log4j.properties文件的内容

下面定义日志输出级别是 INFO,并且配置了2个输出目的地,一个是A3,一个是console

log4j.rootLogger = INFO,A3,CONSOLE

//日志最低的输出级别
log4j.appender.A3.Threshold=INFO
log4j.appender.A3.encoding=UTF-8
//每天产生一个文件DailyRollingFileAppender
log4j.appender.A3 = org.apache.log4j.DailyRollingFileAppender
//file 属性 指定产生日志文件的保存位置及文件名,这里是windows下的配置
// c:/logtest/logtest.log,
//公司项目在linux下的配置是/app/weblogic/applications/logs/sxvip_logs
log4j.appender.A3.File=c:/logtest/logtest.log
//当有日志时立即输出,默认是true
log4j.appender.A3.ImmediateFlush=true
log4j.appender.A3.DatePattern='_'yyyy-MM-dd
//日志布局方式
log4j.appender.A3.layout=org.apache.log4j.PatternLayout
//日志文件中日志的格式
log4j.appender.A3.layout.ConversionPattern=%-d{yyyy/MM/dd HH:mm:ss} OSS %-5p [%c] - %m%n //这里使用org.apache.log4j.ConsoleAppender指定要把日志输出到控制台
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.Threshold=INFO
//输出目标是 控制台
log4j.appender.CONSOLE.Target=System.out
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%-d{yyyy/MM/dd HH:mm:ss} OSS %-5p [%c] - %m%n

Web应用中web.xml利用Spring配置log4j

在web.xml中添加配置
<!-- 配置log4j配置文件的路径,可以是xml或 properties(此参数必须配)-->
下面使用了classpath 参数指定log4j.properties文件的位置,这样log4j的配置文件就不用非要放到src的下面
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>classpath:config/log4j/log4j.properties</param-value>
</context-param>
使用spring的监听器,当应用启动时来读取log4j的配置文件
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>

java中使用log4j

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class MyServiceParamAction extends BaseAdmAction{ private static final Log log =
LogFactory.getLog(MyServiceParamAction.class); public ActionForward NgCallServiceInfo(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
// 获得登录用户信息,没有登录提示用户需要重新登录
log.info("我的服务查询开始.....................................");
UserBean user = (UserBean) request.getSession().getAttribute("USER_INFO");
log.info("从session中获取登录用户user "+user);
if (user != null) {
log.info("user.getMisisdn() "+user.getMsisdn());
. . .
}

当应用启动时,这里就会根据log4j的配置(log4j.appender.A3.File=c:/logtest/logtestxxx.log)在c盘下产生日志文件

当访问项目的资源时就会在该文件中添加日志信息

2013/12/05 11:46:33 OSS INFO  [com.sinovatech.myservice.action.MyServiceParamAction] - 我的服务查询开始...........

2013/12/05 11:46:33 OSS INFO  [com.sinovatech.myservice.action.MyServiceParamAction] - 从session中获取登录用户  user  null

2013/12/05 11:46:33 OSS INFO  [com.sinovatech.myservice.action.MyServiceParamAction] - VIP 我的服务  查询  结束........

注意当在java类的main方法中测试时,不会在日志文件中添加日志信息

在java项目中使用log4j的实例的更多相关文章

  1. Java项目中使用Log4J

    Log4J下载 官网:http://logging.apache.org/log4j/ Log4J 1.2下载地址:http://logging.apache.org/log4j/1.2/downlo ...

  2. java项目中rmi远程调用实例

    1.创建一个学生实体类Student.java: package com.RMIdemo.entity; @SuppressWarnings("serial") public cl ...

  3. UCenter在JAVA项目中实现的单点登录应用实例

    Comsenz(康盛)的UCenter当前在国内的单点登录领域占据绝对份额,其完整的产品线令UCenter成为了账号集成方面事实上的标准. 基于UCenter,可以将Comsenz旗下的Discuz! ...

  4. JAVA项目中公布WebService服务——简单实例

    1.在Java项目中公布一个WebService服务: 怎样公布? --JDK1.6中JAX-WS规范定义了怎样公布一个WebService服务. (1)用jdk1.6.0_21以后的版本号公布. ( ...

  5. 在Java项目中整合Scala

    Scala是一个运行在Java JVM上的面向对象的语言.它支持函数编程,在语法上比Java更加灵活,同时通过Akka库,Scala支持强大的基于Actor的多线程编程.具有这些优势,使得我最近很想在 ...

  6. ckeditor编辑器在java项目中配置

    一.基本使用: 1.所需文件架包 A. Ckeditor基本文件包,比如:ckeditor_3.6.2.zip 下载地址:http://ckeditor.com/download 2.配置使用 A.将 ...

  7. JAVA项目中常用的异常处理情况总结

    JAVA项目中常用的异常知识点总结 1. java.lang.nullpointerexception这个异常大家肯定都经常遇到,异常的解释是"程序遇上了空指针",简单地说就是调用 ...

  8. Java项目中使用log记录日志的一些总结

    本文介绍了一下自己在Java项目中使用log的一些总结,从日志的作用.日志的选用.日志级别介绍.日志记录的一些最佳实践几个方面阐述. 日志的作用 主要作用包括: 1.出问题后定位当时问题 2.显示程序 ...

  9. JAVA项目中常用的异常知识点总结

    JAVA项目中常用的异常知识点总结 1. java.lang.nullpointerexception这个异常大家肯定都经常遇到,异常的解释是"程序遇上了空指针",简单地说就是调用 ...

随机推荐

  1. NumberFormat usage

    NumberFormat 是所有数值格式的抽象基类. 该类提供了格式化和分析数值的接口. NumberFormat 也提供了确定 哪个语言环境具有数值格式以及它们名字的方法. import java. ...

  2. VMware12 安装 CentOS 6.5 64位

    前言:本人在配置Hadoop的过程中,需要搭建Cent OS 64 环境,借此,顺便将Cent OS 64 的安装在此记录,方便自己,也方便大家学习.本次是在VM12虚拟机中实现Cent OS 64 ...

  3. ubuntu 14.04下 horizon openstack_dashboard 的开发环境搭建

    序:公司要在openstack的基础上,做开发做产品,网上资料也不是很多,很多都是在来回copy,在此做个blog,慢慢更新,推动自己进步. 首先老话题:开发环境的搭建.     一个纯净的ubunt ...

  4. sql trunc()的使用

    1.TRUNC(for dates)TRUNC函数为指定元素而截去的日期值.其具体的语法格式如下:TRUNC(date[,fmt])其中:date 一个日期值fmt 日期格式,该日期将由指定的元素格式 ...

  5. Asp.Net Web API 2第十四课——Content Negotiation(内容协商)

    前言 阅读本文之前,您也可以到Asp.Net Web API 2 系列导航进行查看 http://www.cnblogs.com/aehyok/p/3446289.html 本文描述ASP.NET W ...

  6. 《JavaScript语言精粹》之函数化

    写在前面 看到好多书评和读书笔记都说<JavaScript语言精粹>字字珠玑,名不虚传..当然,要看得懂才行 其实个人认为函数化部分不是很好,举的例子不是十分恰当,之前看不懂是因为被成功误 ...

  7. Mac OS X上用CoreCLR运行一个真正的.NET控制台程序

    这个真正的控制台程序来自corefxlab,名叫CoreClrHelloWorld,是一个跨平台的.NET控制台演示程序,可以显示微软.Linux.苹果的logo. CoreClrHelloWorld ...

  8. 转评:你造promise就是monad吗

    看到一遍好文章,与我的想法如出一辙,先转为敬.首先说说我对Monad和promise的理解: Monad的这种抽象方式是为了简化程序中不确定状态的判断而提出的,能够让程序员从更高的层次顺序描述程序逻辑 ...

  9. 学习WPF——了解WPF中的XAML

    XAML的简单说明 XAML是用于实例化.NET对象的标记语言,主要用于构建WPF的用户界面 XAML中的每一个元素都映射为.NET类的一个实例,例如<Button>映射为WPF的Butt ...

  10. Linux:常用快捷键

    按键 作用 Ctrl+d 键盘输入结束或退出终端 Ctrl+s 暂定当前程序,暂停后按下任意键恢复运行 Ctrl+z 将当前程序放到后台运行,恢复到前台为命令fg Ctrl+a 将光标移至输入行头,相 ...