在java项目中使用log4j的实例
测试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的实例的更多相关文章
- Java项目中使用Log4J
Log4J下载 官网:http://logging.apache.org/log4j/ Log4J 1.2下载地址:http://logging.apache.org/log4j/1.2/downlo ...
- java项目中rmi远程调用实例
1.创建一个学生实体类Student.java: package com.RMIdemo.entity; @SuppressWarnings("serial") public cl ...
- UCenter在JAVA项目中实现的单点登录应用实例
Comsenz(康盛)的UCenter当前在国内的单点登录领域占据绝对份额,其完整的产品线令UCenter成为了账号集成方面事实上的标准. 基于UCenter,可以将Comsenz旗下的Discuz! ...
- JAVA项目中公布WebService服务——简单实例
1.在Java项目中公布一个WebService服务: 怎样公布? --JDK1.6中JAX-WS规范定义了怎样公布一个WebService服务. (1)用jdk1.6.0_21以后的版本号公布. ( ...
- 在Java项目中整合Scala
Scala是一个运行在Java JVM上的面向对象的语言.它支持函数编程,在语法上比Java更加灵活,同时通过Akka库,Scala支持强大的基于Actor的多线程编程.具有这些优势,使得我最近很想在 ...
- ckeditor编辑器在java项目中配置
一.基本使用: 1.所需文件架包 A. Ckeditor基本文件包,比如:ckeditor_3.6.2.zip 下载地址:http://ckeditor.com/download 2.配置使用 A.将 ...
- JAVA项目中常用的异常处理情况总结
JAVA项目中常用的异常知识点总结 1. java.lang.nullpointerexception这个异常大家肯定都经常遇到,异常的解释是"程序遇上了空指针",简单地说就是调用 ...
- Java项目中使用log记录日志的一些总结
本文介绍了一下自己在Java项目中使用log的一些总结,从日志的作用.日志的选用.日志级别介绍.日志记录的一些最佳实践几个方面阐述. 日志的作用 主要作用包括: 1.出问题后定位当时问题 2.显示程序 ...
- JAVA项目中常用的异常知识点总结
JAVA项目中常用的异常知识点总结 1. java.lang.nullpointerexception这个异常大家肯定都经常遇到,异常的解释是"程序遇上了空指针",简单地说就是调用 ...
随机推荐
- Windows 8.1 应用再出发 - 几种常用控件
本篇为大家简单介绍Windows 商店应用中控件的用法,为方便讲解,我们在文本控件和按钮控件这两类中分别挑选有代表性的控件进行详细说明. 1. 文本控件 (1) TextBlock TextBlock ...
- 第42讲:Scala中泛型类、泛型函数、泛型在Spark中的广泛应用
今天来了解下scala的泛型 先让我们看下这段代码 class Triple[F,S,T](val first:F,val second: S,val third: T) val triple = n ...
- 省市区县镇级联数据JS版
前言:网站开发经常会涉及到报名,报名通常就会有地区级联的要求.如下所示.做这个功能就必须要有数据支撑.昨天努力了一天,从网上鼓捣了一份数据.分享下.纯技术性分享,非盈利的.如果有侵权的地方请知会,马上 ...
- Objective 笔记C(第二天)
属性本质 •什么是属性 在OC中,属性提供了setter和getter方法,本质上属性就是方法,属性的值是由实例变量来保存的. • 属性的本质(一般三个部分组成) a.保存属性值的实例变量int _a ...
- Magcodes.WeiChat——通过CsvFileResult以及DataAnnotations实现导出CSV文件
我们先来看看效果图: 从上图中可以看出,导出的文件中列名与表格名称保持一致,并且忽略了某些字段. 相关代码实现 我们来看相关代码: 页面代码: @using (Html.BeginForm(" ...
- JsCss笔记
1. &= 不应该在 Bool 型变量中使用. a &= b 对于Js来说是: a = a & b ; a 本来是 bool , &= 之后就变成了 Int. ...
- 设计模式之美:Singleton(单件)
索引 意图 结构 参与者 适用性 缺点 效果 相关模式 实现 实现方式(一):使用 Static 变量初始化 Singleton. 实现方式(二):使用 Lazy Initialization 来实现 ...
- WPF Dispatcher 一次小重构
几个月之前因为项目需要,需要实现一个类似于WPF Dispatcher类的类,来实现一些线程的调度.之前因为一直做Asp.Net,根本没有钻到这个层次去,做的过程中,诸多不顺,重构了四五次,终于实现, ...
- 字符串匹配算法之BF(Brute-Force)算法
BF(Brute-Force)算法 蛮力搜索,比较简单的一种字符串匹配算法,在处理简单的数据时候就可以用这种算法,完全匹配,就是速度慢啊. 基本思想 从目标串s 的第一个字符起和模式串t的第一个字符进 ...
- MySQL数据库主键设计原则
目录 1. 主键定义... 5 2. 主键设计原则... 5 2.1 确保主键的无意义性... 5 2.2 采用整型主键... 5 2.3 减少主键的变动... 5 2.4 避免重复使用主键... 6 ...