- 浏览: 2888211 次
- 性别:
- 来自: 武汉
-
文章分类
- 全部博客 (1173)
- 名言警句 (5)
- 心情随笔 (50)
- 数据库 (57)
- Java基础 (241)
- J2EE框架 (91)
- 数据结构 (12)
- 程序设计 (21)
- WEB技术 (128)
- 网络日志 (12)
- IT资讯 (247)
- linux (64)
- solaris (2)
- 其它 (143)
- WebService (4)
- 日语学习 (2)
- 机器人 (5)
- Android (5)
- cgywin (3)
- Game (1)
- DWR (1)
- spring (8)
- canvas (1)
- Guava (3)
- Modbus (5)
- 测试 (6)
- mongodb (9)
- Quartz (2)
- Cron (1)
- windows (2)
- 持续集成 (1)
- bootstrap (3)
- 结对编程 (1)
- nodejs (1)
- Netty (1)
- 安全 (3)
- webstorm (2)
- sparkline (1)
- Job (1)
- git (3)
- Maven (3)
- knockout (5)
- jquery (1)
- bower (1)
- docker (1)
- confluence (4)
- wiki (1)
- GoogleMap (1)
- jekyll (10)
- ruby (2)
- npm (3)
- browserify (1)
- gulp (3)
- openwrt (1)
- discuz (3)
- 输入法 (1)
- JPA (1)
- eclipse (2)
- IntelliJ (1)
- css (1)
- 虚拟机 (1)
- 操作系统 (1)
- azkaban (2)
- scrum (1)
最新评论
-
pangxiea_:
你好, 想请问一下 Linux下 这么使用rxtxcomm 在 ...
使用Java进行串口通信 -
abababudei:
请教一下,这个您是怎么解决的:/dev/ttyS2enteri ...
Java应用程序的MODBUS通讯 -
xuniverse:
hannibal005 写道楼主,我问下 request.se ...
用javascript与java进行RSA加密与解密 -
atxkm:
找了一下午,终于找到了
gulp 拷贝文件时如何移除文件目录结构 -
kalogen:
gtczr 写道非常感谢,经过我自己的修改,已经完美实现。发出 ...
用javascript与java进行RSA加密与解密
一般的系统对程序的调试信息只进行了简单的粗放处理,将这些信息直接用System.out.println()语句输出到控制台中。由于在调度过程中程序员为了能够跟踪程序的运行情况往往将大量信息输出到控制台,而在调度成功后没有相应地将这些信息屏蔽掉,在程序部署运行后,往往一个简单的业务功能调用也会输出大容量的过程调度信息,一方面造成了大量IO的读写,占用硬盘空间,另一方面则因为日志量大,很难查找到运行期有用的日志信息。
程序异常,资源释放操作失败这些信息是发现程序问题,定位出错点的信息依据,得不到这些信息将导致程序错误被屏蔽,要想使问题浮出水面程序必须能够提供详细而简洁的日志信息。
?log4J是为java语言量身定做的一个日志模块,用统一的接口写日志,通过配置文件信息控制日志信息的输出格式、目的及输出级别(指定输出级别后,只有比输出级别更高的日志会被输出)。可以在不更改程序输出日志的情况下方便日志输出的控制,为日志的操作提供了很大的灵活性。
2 log4J的基本操作
2.1写日志的API
log4J将日志分为5个级别,从低到高分别是DEBUG,INFO,WARN,ERROR,FATAL,相应地log4J为记录这5个级别提供了5个方法,它们分别是:
public void debug(Object obj)
public void info(Object obj)
public void warn(Object obj)
public void error(Object obj)
public void fatal(Object obj)
同时每个方法还对应一个带Throwable入参的重载函数,用于将异常一并记录到日志中:
public void debug(Object obj,Throwable ex)
public void info(Object obj,Throwable ex)
public void warn(Object obj,Throwable ex)
public void error(Object obj,Throwable ex)
public void fatal(Object obj,Throwable ex)
5个级别记录信息的重要性依次提升,下面就每个记录方法对应的应用场合举例如下:
2.1.1 写日志API的使用示例
在程序中如何恰当级别的日志记录API记录日志信息是非常重要的,一般的我们将信息以其重要性调用将其划分为5个级别,分别调用相应的API来记录,我们以一个查询数据库的代码段来说明各级别的划分:
Connection conn = null; String sqlStr = "select * from table1 where a=’"+a+"’"; // 测试变量是否正确,在调度时查看,以后不会用 logger.debug("sqlStr字串为:"+sqlStr); // ... try { conn = DBBean.getConnection(); Statement stat = conn.createStatement(); ResultSet rs = stat.executeQuery(sqlStr); if(rs.next()) { logger.info("有记录"); // 查看程序运行中的信息,反映程序及配置信息的情况 } else { logger.warn("因配置要求至少要有一条记录,请核对配置信息。"); // 假设配置信息要求一条配置记录,当找不到记录时应该警告, // 以并更改配置 } }catch(SQLException e) { logger.error("数据查询时发生异常",e); // 发生了查询异常,可能是sqlStr语句的语法错误造成的 } finally { try { if(conn != null) { conn.close(); conn = null; } } catch(SQLException e) { logger.warn("数据连接无法关闭,连接将无法释放",e); // 数据连接无法关闭将导致资源泄漏,可能是系统原因产生的 // 如果持续产生这个问题,开发人员需要查明原因, // 否则系统将因数据连接资源无法释放而崩溃 } }
发表评论
-
高级Java程序员值得拥有的10本书
2015-05-04 07:24 822Java是时下最流行的编程语言之一。市面上也出现了适合初学者 ... -
深入理解java异常处理机制
2015-01-30 09:30 13451. 引子 try…catch…fi ... -
java 运行时参数设置
2015-01-07 09:13 879JVM的运行时参数: -Xms为执行单元内存的1/4, ... -
每个Java开发者都应该知道的5个JDK工具
2014-12-29 12:37 1154JDK是Java语言的软件开 ... -
使用双重锁判定可以大幅降低锁的征用
2014-12-29 12:30 761class ObjInstance { //单例 pri ... -
MAVEN Scope使用说明
2014-11-24 09:40 777在Maven的依赖管理中,经常会用到依赖的scope设置。这 ... -
Spring4 quartz job xml configuration
2014-11-11 09:46 14501. 定义job details public ... -
Add items into list in one line using guava
2014-11-10 10:54 734//@formatter:off fina ... -
配置动态读取(变化)文件 in Spring
2014-11-10 08:51 13391. 从环境变量中读取路径: <bean id=&q ... -
JAVA实现AES加密与解密
2014-11-04 15:34 672package com.eifesun.monitor.up ... -
Netty4.x分析
2014-07-31 11:06 1483官网定义: netty是一个异步、事件驱动的网络应用框架,用 ... -
Ways to sort lists of objects in Java based on multiple fields
2014-07-21 17:19 7871. the first way: Sorting wit ... -
how to parse a String to BigDecimal
2014-07-21 10:08 935private BigDecimal parsePrice( ... -
order list using google guava
2014-07-21 09:08 897Predicate<String> filter ... -
Java 读文件操作
2014-07-08 14:09 8981. only use java core, no exte ... -
怎样使Java 中测试按一定顺序执行
2014-03-10 11:27 1341@FixMethodOrder(MethodSorters. ... -
如何实现在当类初始化时,自动调动某个方法
2014-02-14 14:44 977有两种思路, 1. 将这个类实现为thread类 (or ... -
持续集成JenkinsAPI常见用法
2014-02-10 13:54 43jenkins(持续集成开源工具)提供了丰富的api接口,基 ... -
Sonar 安装与使用
2014-01-13 10:49 1751Sonar 是一个用于代码质量管理的开放平台。通过插件机制, ... -
源代码管理分析工具 Source Navigator的安装与使用
2014-01-13 09:51 1916Source-Navigator是原来redhat开发的一个 ...
相关推荐
本文将深入解析log4j的配置与加载机制,帮助开发者更好地理解和应用log4j。 #### Log4j配置文件格式 Log4j支持多种配置文件格式,包括`.properties`和`.xml`。两种格式在功能上并无本质区别,选择哪种取决于个人或...
### log4j日志记录详解 #### 一、log4j简介 Log4j是由Apache组织提供的一个开源项目,主要用于实现日志记录功能。在现代软件开发中,特别是在企业级应用开发领域,日志记录是必不可少的一个环节。它能够帮助开发者...
### log4j日志的数据库管理 在现代软件开发中,日志记录是维护系统稳定性和性能的关键环节。Log4j作为Apache旗下的一款开源日志框架,被广泛应用于Java应用程序中,用于收集、管理和分析应用运行时产生的各种日志...
日志格式和项目中用log4j打出来的不一致,不利于解析。 从tomcat官网(https://tomcat.apache.org/tomcat-7.0-doc/logging.html)上找了下,修改一些配置、替换扩展包即可使用log4j输出catalian.out。 在$CATALINA_...
4. `com.springsource.org.apache.log4j-1.2.15.jar`: 这是Apache Log4j的日志库,Spring Security和其他许多框架一样,使用Log4j进行日志记录,帮助开发者调试和跟踪安全相关的事件。 5. `org.springframework.web...
2. Java:`java.util.logging`或第三方库如Log4j、Logback,都提供了多线程日志处理能力。 3. C++:可以使用Glog或spdlog,它们都支持多线程环境下的日志处理。 六、日志存储与检索 1. 文件存储:简单易用,但查询...
是著名的日志记录组件 log4j 的 C++ 移植版,用于为 C++ 程序提供日志功能,以便开发者对目标程序进行调试和审计。当前的最新版本为 0.10.0。 Apache log4cxx 框架组成 Apache Log4cxx 有三个关键组件,它们是 ...
ssm一个简单项目所需的xml配置文件,spring+springmvc+mybatis框架中用到...项目中还会用到两个资源属性文件jdbc.properties和log4j.properties.一个是关于jdbc的配置,提取出来方便以后的修改.另一个是日志文件的配置.
- `slf4j-api.jar` 和 `slf4j-log4j12.jar`:简单日志门面(SLF4J)与Log4j的桥接器。 - `cglib-nodep.jar`:Spring AOP中用到的代码生成库。 - `asm*.jar`:用于运行时字节码操作的库,可能在Hibernate或Spring...
2. 在项目的资源目录下创建`log4j.properties`文件,用于配置日志记录规则: ``` log4j.rootLogger=DEBUG,MINA,file log4j.appender.MINA=org.apache.log4j.ConsoleAppender log4j.appender.MINA.layout=org....
- **slf4j-api-1.5.2.jar** 和 **slf4j-log4j12-1.5.2.jar**:用于日志记录。 - **log4j-1.2.14.jar**:Log4j的版本依赖于SLF4J的实现。 确保下载并配置这些库文件后,即可开始编写代码。 ##### 第二步. 工程创建...
4. **slf4j-api-x.x.x.jar** 和 **slf4j-log4j12-x.x.x.jar**:Simple Logging Facade for Java (SLF4J) 是一个日志门面接口,允许你在运行时选择不同的日志实现。SLF4J-api提供了一组API,而slf4j-log4j12是SLF4J与...
7. **commons-logging-1.1.1.jar**:Apache Commons Logging是一个日志抽象层,允许开发者选择底层的日志实现,如log4j、java.util.logging等,而无需更改代码。 8. **commons-fileupload-1.2.2.jar**:Apache ...
5. **其他依赖库**:如log4j.jar用于日志记录,wsdl4j.jar用于处理WSDL文档,还有commons-logging.jar、commons-codec.jar、commons-discovery.jar等Apache Commons库,它们提供了各种实用工具和功能。 6. **...
工具类库可能会集成常见的日志框架(如Log4j、SLF4J或Java内置的日志系统),并提供统一的API。 在"主体项目测试"部分,可能包含对这些工具类库的实际应用和验证,通过单元测试或集成测试确保其正确性和性能。测试...
解决方法是删除或在工程的classes目录下放置log4j的配置文件`log4j.properties`。 通过这个简单的例子,你将了解Hibernate的基本用法,包括如何定义实体类,配置映射文件,以及如何设置和使用Hibernate的配置。随着...
在我们的示例代码中,我们还使用了 Log4j 来记录日志,以便于调试和错误处理。 下面是该技术的一些关键点: * 使用 URLConnection 类可以实现 HTTP 请求代理。 * 使用 HttpURLConnection 对象可以发送 GET 和 POST...
3. **LOG4J**:Log4j是Apache的一个开源项目,它是Java的日志工具,提供了灵活且强大的日志记录功能。通过配置,可以控制日志信息输出的级别,选择输出目的地(如控制台、文件、数据库等),并且可以自定义日志格式...
7. **slf4j-log4j12-1.7.25.jar**:Simple Logging Facade for Java (SLF4J)的日志适配器,允许将SLF4J与log4j结合使用。 8. **ant-launcher-1.9.6.jar**:Apache Ant的启动器,可能在构建过程中用到。 9. **slf4j...
2. Log4cpp:类似Java的Log4j,提供灵活的日志配置和输出。 八、代码分析 用于代码分析和静态检查的工具: 1. Clang-Tidy:基于Clang的静态代码分析工具。 2. Coverity:商业静态分析工具,查找潜在错误和安全漏洞...