- 浏览: 1990385 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (509)
- JavaEE (122)
- Oracle数据库 (29)
- JavaScript (37)
- SAP (5)
- MySql数据库 (7)
- JavaSE (4)
- Ajax (1)
- jQuery (13)
- SSH框架 (36)
- Web Service (10)
- JSF框架 (2)
- JBPM (0)
- ireport报表 (2)
- ibatis (5)
- Hibernate (31)
- JSP (11)
- Tomcat 服务器 (20)
- Other (19)
- JavaWeb (4)
- Maven (11)
- OSWorkFlow (10)
- HTML (13)
- Exception汇总 (7)
- SVN (2)
- 笑话 (1)
- JSTL (1)
- WebSphere Message Broker (13)
- ANT命令 (3)
- Liunx (12)
- Struts2 (26)
- Eclipse (6)
- DOS (3)
- Flex (11)
- WebSphere (1)
- 开发常用工具 (3)
- Junit (2)
- EJB (4)
- Struts1.2 (2)
- Jboss (1)
- Android (2)
- Java框架源码解析 (1)
- Spring (4)
- MyBatis (6)
- SpringMVC (4)
- Jetty (2)
- 数据库表设计 (1)
- SSO (4)
最新评论
-
贝塔ZQ:
也可以试试PageOffice插件,觉得更简单点
Jxl操作Excel设置背景、字体颜色、对齐方式、列的宽度 -
jia1208:
...
Could not publish server configuration for Tomcat v6.0 Server at localhost. -
u011274527:
赞
java.io.EOFException java.io.ObjectInputStream$PeekInputStream.readFully 错误 -
旭旭小牛啦:
怎么没哟了,继续赛
jQuery 选择器 -
wzw3919:
100行会报空指针
Java 解压缩zip文件
首先要下载,log4j-1.2.11.jar 这个包 和 log4j.properties 的属性文件,
有了这两个文件之后,.我们开始新建Java工程,.
把log4j.properties属性文件拷贝到src目录下, 还有把log4j-1.2.11.jar 包拷贝到lib目录中,
接下来,开始写Log的封装类..
package pack.java.conmm.log; import org.apache.commons.lang.RandomStringUtils; import org.apache.commons.logging.LogFactory; public class Log { private org.apache.commons.logging.Log log; private static final String POSSIBLE_CHARS = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"; private static final int RANDOM_KEY_LENGTH = 4; public Log() { super(); // TODO Auto-generated constructor stub } private static ThreadLocal threadlocal_UniqueKey = new ThreadLocal() { protected synchronized Object initialValue() { return RandomStringUtils.random(RANDOM_KEY_LENGTH, POSSIBLE_CHARS); } }; public static String getUniqueKey(){ return (String)threadlocal_UniqueKey.get(); } public static void destoyUniqueKey(){ threadlocal_UniqueKey.set(null); } public static Log getLog(Class class1){ return new Log(class1); } public Log(Class class1) { this.log=LogFactory.getLog(class1); } public void error(String msg){ log.error(getUniqueKey()+"-"+msg); } public void error(String msg,Throwable throwable){ log.error(getUniqueKey()+"-"+msg,throwable); } public void info(String msg){ log.info(getUniqueKey()+"-"+msg); } public void info(String msg,Throwable throwable){ log.info(msg, throwable); } public void debug(String msg){ log.debug(msg); } public void warn(String msg){ log.warn(msg); } public void warn(String msg,Throwable throwable){ log.warn(msg, throwable); } public void debug(String msg,Throwable throwable){ log.debug(msg, throwable); } public void trace(String msg){ log.trace(msg); } public void trace(String msg,Throwable throwable){ log.trace(msg, throwable); } }
建立一个BaseException异常类,继承至Exception类;
package pack.java.exception; /** * BaseException 类 继承只 父类Exception; * @author Administrator * */ public class BaseException extends Exception { private static final long serialVersionUID = -2059199777137667299L; public BaseException() { super(); // TODO Auto-generated constructor stub } public BaseException(String message, Throwable cause) { super(message, cause); // TODO Auto-generated constructor stub } public BaseException(String message) { super(message); // TODO Auto-generated constructor stub } public BaseException(Throwable cause) { super(cause); // TODO Auto-generated constructor stub } }
//自定义的一个异常,继承至BaseException类;
package pack.java.exception; public class PersonException extends BaseException { private static final long serialVersionUID = -3330457952276038323L; public PersonException(){ super("Unkown System PersonException."); } public PersonException(String msg){ super(msg); } public PersonException(String msg,Throwable cause){ super(msg, cause); } public PersonException(Throwable cause){ super(cause); } }
建立一个简单的JavaBean文件.
package pack.java.javaBean; import java.io.Serializable; public class Person implements Serializable { private static final long serialVersionUID = 4540756310460625945L; private String name; private String sex; private int age; private String address; private String cardId; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public String getCardId() { return cardId; } public void setCardId(String cardId) { this.cardId = cardId; } public Person() { super(); // TODO Auto-generated constructor stub } public Person(String name, String sex, int age, String address, String cardId) { super(); this.name = name; this.sex = sex; this.age = age; this.address = address; this.cardId = cardId; } }
JavaBean创建好之后,接下来就是写测试类了.
package pack.java.service; import java.util.ArrayList; import java.util.List; import pack.java.conmm.log.Log; import pack.java.exception.PersonException; import pack.java.javaBean.Person; public class TestLog{ private Log log=new Log(PersonServiceImpl.class); public List<Person> getPerson() throws PersonException { // TODO Auto-generated method stub List<Person> list=new ArrayList<Person>(); Person person2=new Person(); person2.setName("有名"); person2.setAddress("上海"); person2.setAge(22); person2.setCardId("3244554433335434"); person2.setSex("Girl"); list.add(person2); Person person=new Person(); person.setName("无名"); person.setAddress("深圳"); person.setAge(11); person.setCardId("43022113333323"); person.setSex("boy"); list.add(person); for(Person per:list){ if(per.getAge() == 11){ log.debug("我设置的年龄为11岁,这里抛出异常."); throw new PersonException("我设置的年龄为11岁",new Throwable("抛出异常!!")); }else{ log.debug(per.getName()+","+per.getAge()+","+per.getAddress()+","+per.getSex()); } } return list; } public Person setPerson(Person person) throws PersonException { // TODO Auto-generated method stub return person; } public static void main(String[] args){ new PersonServiceImpl().getLogMethod(); } public void getLogMethod(){ PersonServiceImpl personServiceImpl=new PersonServiceImpl(); try { personServiceImpl.getPerson(); } catch (PersonException e) { // TODO Auto-generated catch block log.debug("PersonException:",e); e.printStackTrace(); } System.out.println("继续执行@@@@@@@"); } }
运行之后,我们就能在控制台输出:
------------------------------------------------------------------------------------------------------
2010-11-12 13:52:59 有名,22,上海,Girl
2010-11-12 13:52:59 我设置的年龄为11岁,这里抛出异常.
2010-11-12 13:52:59 PersonException:
pack.java.exception.PersonException: 我设置的年龄为11岁
at pack.java.service.PersonServiceImpl.getPerson(PersonServiceImpl.java:36)
at pack.java.service.PersonServiceImpl.getLogMethod(PersonServiceImpl.java:56)
at pack.java.service.PersonServiceImpl.main(PersonServiceImpl.java:50)
Caused by: java.lang.Throwable: 抛出异常!!
... 3 more
pack.java.exception.PersonException: 我设置的年龄为11岁
at pack.java.service.PersonServiceImpl.getPerson(PersonServiceImpl.java:36)
at pack.java.service.PersonServiceImpl.getLogMethod(PersonServiceImpl.java:56)
at pack.java.service.PersonServiceImpl.main(PersonServiceImpl.java:50)
Caused by: java.lang.Throwable: 抛出异常!!
... 3 more
继续执行@@@@@@@
红色部分的是,抛出出来的堆栈,信息.. 而黑色字体这时Log里面在控制台输出的信息,然后我们在工程refresh一下.就能看到
一个XXX.Log日志文件,里面就保存了控制台输出的信息了.
这个就是我生成之后的.log文件的内容.
2010-11-12 13:52:59 pack.java.conmm.log.Log.debug(Log.java:59) 有名,22,上海,Girl
2010-11-12 13:52:59 pack.java.conmm.log.Log.debug(Log.java:59) 我设置的年龄为11岁,这里抛出异常.
2010-11-12 13:52:59 pack.java.conmm.log.Log.debug(Log.java:71) PersonException:
pack.java.exception.PersonException: 我设置的年龄为11岁
at pack.java.service.PersonServiceImpl.getPerson(PersonServiceImpl.java:36)
at pack.java.service.PersonServiceImpl.getLogMethod(PersonServiceImpl.java:56)
at pack.java.service.PersonServiceImpl.main(PersonServiceImpl.java:50)
Caused by: java.lang.Throwable: 抛出异常!!
... 3 more
发表评论
-
解决Java服务器端插入数据到Mysql中乱码问题--简单几步轻松解决乱码问题
2015-11-13 17:52 2418当写入数据到mysql数据库中发生乱码时.请检查以下几个地 ... -
设计模式之-代理模式-Proxy
2015-04-28 21:24 869使用代理模式之前需要知道代理模式能做什么? 能有哪些好处以及 ... -
构建高并发、服务化、低耦合企业级脚骨:springmvc+mybatis+restfull+webservice+bootstrap html5
2015-04-14 01:17 85SpringMVC + Mybatis + SpringS ... -
教您搭建大型互联网企业架构:springmvc+mybatis+restful+webservice+quartz+bootstrap
2015-04-13 21:54 99SpringMVC + Mybatis + SpringS ... -
大型互联网服务集成平台:springmvc+mybatis+restful+webservice+quartz+bootstrap html5
2015-04-13 21:49 81SpringMVC + Mybatis + SpringSe ... -
大型互联网服务集成平台:springmvc+mybatis+restfull+JMS+webservice+bootstrap
2015-04-12 23:36 22SpringMVC + Mybatis + SpringS ... -
大型互联网服务集成平台:springmvc+mybatis+restfull+JMS+webservice+bootstrap
2015-04-12 23:33 83SpringMVC + Mybatis + SpringS ... -
Maven构建大型互联网架构springmvc+mybatis+Restfull+Webservice+Bootstrap
2015-04-12 23:28 71SpringMVC + Mybatis + SpringS ... -
maven构建高大上开源架构:springmvc+mybatis+rest+bootstrap html5
2015-04-12 23:25 23SpringMVC + Mybatis + SpringS ... -
手机App后台架构:Springmvc+SpringSecurity+mybatis+Rest+Quartz+Bootstrap Html5( Maven构建)
2015-04-09 01:39 76APP后台架构Maven构建,模拟大型互联网架构,支持高并发 ... -
maven构建springmvc+mybatis+rest+webservice+bootstrap html5(cms开源项目)
2015-04-09 01:21 85SpringMVC + Mybatis + SpringS ... -
Java正则表达式
2014-11-26 21:03 1220Java正则表达式: package pack.ja ... -
Cannot convert value of type [org.springframework.cache.ehcache.EhCacheCache
2014-11-10 20:03 6252错误信息: [org.springframework.be ... -
Collections工具类中的frequency方法统计单词出现的次数
2013-11-05 21:30 2818最近发现了一个Collections中有一个很好用的方法: ... -
Java 压缩Excel文件生成.zip文件
2013-05-08 22:22 7952首先创建文件目录,然后生成Excel文件到创建的目录下, ... -
Java 解压缩zip文件
2013-05-08 13:14 8354不借助于其他的第三方 ... -
Jxl操作Excel设置背景、字体颜色、对齐方式、列的宽度
2013-04-06 22:26 57720最近项目中需要用到导出Excel文件,以下是我写了一个通过j ... -
java获取字节的长度.
2012-05-17 22:00 6746我们经常要获取中文,数字,或者英文字符所占字节的长度,下面就列 ... -
StringBuffer-reverse()字符反转功能
2012-05-17 21:42 7096在书上看到一个这样的例子, 采用最简便的方式把一串字符串反转过 ... -
java 打开IE
2012-05-23 22:14 1303Runtime.getRuntime().exec(" ...
相关推荐
**日志框架Log4j详解** 在Java开发中,日志记录是一项不可或缺的功能,它能够帮助开发者追踪程序运行状态,定位错误,优化性能,并为后期维护提供重要信息。Log4j是Apache组织开发的一个强大的、灵活的日志记录框架...
Log4j是一个广泛使用的Java日志记录框架,它允许开发者在应用程序中插入日志语句,以便跟踪程序的运行情况、调试错误、监控性能等。这个框架由Apache软件基金会开发,是许多Java项目的首选日志解决方案,因为它具有...
本文将详细介绍如何配置和使用log4j.properties文件,以实现灵活的日志管理。 一、log4j简介 log4j是Apache组织提供的一款开源日志框架,它具有可配置性、可扩展性和高性能的特点。log4j的核心组件包括Appender...
- `log4j.rootLogger`: 定义了根日志记录器(root logger)的默认级别和使用的Appender。 - `debug`: 设置根日志记录器的默认级别为DEBUG。 - `,stdout`: 表示日志消息将被输出到名为“stdout”的Appender。 #### 五...
本文将围绕“log4j.zip”项目日志,详细介绍Log4j的基本概念、配置、使用方法以及优化策略。 一、Log4j简介 Log4j是由Apache软件基金会开发的一款开源日志组件,适用于Java平台。它的设计理念是提供一个灵活且高效...
`log4j.API`可能是Log4j的API文档,它提供了详细的类和方法说明,可以帮助开发者了解每个接口和类的作用,以及如何使用它们来记录日志。 此外,压缩包可能还包含了Log4j的学习资料,这些资料可能涵盖Log4j的基本...
**日志框架Log4j详解** 在Java开发中,日志记录是一项至关重要的任务,它帮助开发者追踪程序运行...通过合理的配置和使用,Log4j能够为开发者提供强大且灵活的日志管理能力,帮助他们更好地监控和维护Java应用程序。
Oracle DG下修改redo log和standby redo log日志大小.txt
Log4j是一种广泛应用于Java应用程序的日志框架,它可以帮助开发者轻松管理应用程序的日志记录过程。Log4j支持多种配置方式,其中.properties文件配置是最常用的一种。通过.properties文件,我们可以灵活地设置日志...
**log4Net.dll 使用详解** 在.NET开发环境中,日志管理是不可或缺的一部分,它能够帮助开发者追踪程序运行状态,定位错误,以及进行性能分析。Log4net是Apache软件基金会的一个开源项目,它为.NET Framework提供了...
Log4j作为Java领域广泛使用的日志框架,提供了丰富的功能和灵活性。本文将通过分析名为"Log4jToWriterAppender.zip"的项目,探讨如何利用Log4j中的WriterAppender来改变日志的输出目的地,以满足特定的日志处理需求...
Log4j 配置详解 Log4j 是一个流行的 Java 日志记录工具,提供了灵活的日志记录机制,能够满足不同的...了解 Log4j 的配置步骤、日志输出级别、appenders 和 layouts,可以帮助我们更好地使用 Log4j 实现日志记录。
- **JDBC配置**:使用`<JDBC>` appender,需要配置数据库连接信息,定义日志表结构,然后将日志信息存储到数据库中。 8. **实际应用**:`Log4jTest`可能是测试代码或示例,演示如何在实际项目中应用上述配置,进行...
Log4j是Apache组织提供的一款广泛使用的Java日志框架,因其灵活性、高效性和可扩展性而备受青睐。本文将详细探讨Log4j的使用,主要关注1.2.17版本的jar包以及配置文件`log4j.properties`。 ### 1. Log4j简介 Log4j...
**Java日志框架Log4j详解** 在Java编程中,日志记录是不可或缺的一部分,它帮助开发者追踪程序运行状态,定位...了解并熟练掌握Log4j的使用,有助于提升开发效率,优化日志管理,为问题排查和系统监控提供有力支持。
spdlog是一个在C++编程语言中广泛使用的高性能日志库,它提供了丰富的功能,使得在开发过程中记录、管理和分析日志变得简单而高效。 描述中提到,这个库是开源的,这意味着它的源代码可以被自由地使用、修改和分发...
Log4j是一款广泛使用的日志框架,它允许我们自定义日志级别、格式以及输出目的地。本文将围绕`log4j.properties`配置文件,探讨其基本用法和重要概念。 一、Log4j的基本结构 Log4j主要由三个核心组件构成:Logger...
Log4j是Apache组织开发的一款强大的Java日志记录框架,被广泛应用于各种Java项目中,以提供灵活的日志输出和管理。它允许开发者控制日志信息的输出级别、格式以及输出位置,帮助调试和监控系统运行状态。Log4j的核心...
"log日志工具.rar"这个压缩包文件包含了关于日志使用的详细信息,包括源码分析和示例代码。 首先,我们来探讨日志在安卓应用开发中的作用。在安卓系统(Android System)中,日志系统为开发者提供了一个记录和查看...
Log4j是一款广泛使用的Java日志记录框架,它允许开发者按照功能模块或特定需求记录应用程序运行过程中的事件信息。在“log4j按功能保存日志”的场景中,我们通常会利用Log4j的配置灵活性,将不同功能的日志分别写入...