`

log4j 程序中打印日志

    博客分类:
  • java
阅读更多

在程序中打印日志,不仅便于自已测试,还便于联调,增强代码的可读性。
不论使用common-logger, 是log4j, 还是其它的日志工具类,都会定义日志级别:DEBUG,INFO,WARN,ERROR等。

我在写程序时,就不怎么爱写这类日志,程序在编码阶段,自个能看懂,过了一段时间,
要联调,或者查找sit的测试问题,就不得不查看源代码,才能清楚调用逻辑。如果写了这类日志
就能知道在哪一步报错,快速定位问题,避免浪费时间,以后维护人员也能更好的了解
业务逻辑,便于维护。

日志可以打印在控制台: console
日志也可以打印在文件中:

 

log4j.rootLogger=DEBUG,stdout
DEBUG模式时,会打印第三方jar包的log.debug("xx") 日志
打印sql以及参数,如下所示:
2015-09-19 21:09:58,747 DEBUG cn.mapper.UserMapper.selectById - ==>  Preparing: select USERID, USERNAME, BIRTHDAY, SALARY from user where USERID = ?
2015-09-19 21:09:58,747 DEBUG cn.mapper.UserMapper.selectById - ==> Parameters: 200(String)

 

在if条件判断里面,加上日志,便于知道有没有执行里面的代码
打印返回值

在开发阶段,使用debug模式,上线时改成error模式

OFF,FATAL,ERROR,WARN,INFO,DEBUG,ALL

在开源软件中,日志应用如下:
private boolean process(Map<String, Object> map, MatchCallback callback) {
  Properties properties = new Properties();
  properties.putAll(getFlattenedMap(map));

  if (this.documentMatchers.isEmpty()) {
   if (this.logger.isDebugEnabled()) {
    this.logger.debug("Merging document (no matchers set)" + map);
   }
   callback.process(properties, map);
   return true;
  }

  MatchStatus result = MatchStatus.ABSTAIN;
  for (DocumentMatcher matcher : this.documentMatchers) {
   MatchStatus match = matcher.matches(properties);
   result = MatchStatus.getMostSpecific(match, result);
   if (match == MatchStatus.FOUND) {
    if (this.logger.isDebugEnabled()) {
     this.logger.debug("Matched document with document matcher: " + properties);
    }
    callback.process(properties, map);
    return true;
   }
  }

  if (result == MatchStatus.ABSTAIN && this.matchDefault) {
   if (this.logger.isDebugEnabled()) {
    this.logger.debug("Matched document with default matcher: " + map);
   }
   callback.process(properties, map);
   return true;
  }

  this.logger.debug("Unmatched document");
  return false;
 }
 

分享到:
评论

相关推荐

    springMVC 日志配置 限制log4j 输出文件大小

    实际项目中经常会用到日志打印 为避免日志打印输出文件过大 消耗服务器内存 需要限制大小

    使用Log4j进行日志操作

    此外,通过Log4j其他语言接口,您可以在C、C++、.Net、PL/SQL程序中使用Log4j,其语法和用法与在Java程序中一样,使得多语言分布式系统得到一个统一一致的日志组件模块。而且,通过使用各种第三方扩展,您可以很方便...

    log4j使用实战

    当前日志放在log4j.appender.File.File=${user.dir}/logs/hmiservice.log对应的命名文件中, 过了时间将原日志文件命名为原文件名后加上log4j.appender.File.DatePattern='.'yyyy-MM-dd-HH对应格式的日期, 注意不能...

    log4j-1.2.17.jar

    log4j-1.2.17 优先级从高到低分别是ERROR、WARN、INFO、DEBUG。通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。比如在这里定义了INFO级别,则应用程序中所有DEBUG级别的日志信息将不被打印...

    如何使用Log4j?

    关于log4j的使用 1、Log4j是什么? 2、Log4j的概念? 3、Log4j的配置文件? 4、Log4j在程序中的使用?

    程序中打印出日志信息

    程序中打印出日志信息

    Log4j的简单使用教程

    在应用程序中添加日志记录总的来说基于三个目的:监视代码中变量的变化情况,周期性的记录到文件中供其他应用进行统计分析工作;跟踪代码运行时轨迹,作为日后审计的依据;担当集成开发环境中的调试器的作用,向文件...

    java自定义日志输出文件(log4j日志文件输出多个自定义日志文件)

    打印日志的在程序中是必不可少的,如果需要将不同的日志打印到不同的地方,则需要定义不同的Appender,然后定义每一个Appender的日志级别、打印形式和日志的输出路径,下面看一个示例吧

    LOG4J配置PPT

    LOG4J配置PPT 应用程序中输出日志有三个目的: 监视代码中变量的变化情况,把数据周期性地记录到文件中供其他应用进行统计分析工作。 跟踪代码运行时轨迹,作为日后审计时的依据。 但当集成开发环境中的调适器,...

    blade-log:刀片服务器默认日志显示

    彩色日志打印 输出日志到文件 多种日志级别 不依赖第三方库 按文件大小切割 使用 加入依赖 &lt;groupId&gt;com.bladejava&lt;/groupId&gt; &lt;artifactId&gt;blade-log &lt;version&gt;0.1.6 配置 com.blade.logger.rootLevel=INFO ...

    log4j.jar-org.slf4j.api_1.6.4.jar-slf4j-log4j12-1.6.4.jar

    java程序中打印日志所需要的jar包 ..................................................................................

    Log4j学习笔记,个人整理

    在应用程序中添加日志记录总的来说基于三个目的:监视代码中变量的变化情况,周期性的记录到文件中供其他应用进行统计分析工作;跟踪代码运行时轨迹,作为日后审计的依据;担当集成开发环境中的调试器的作用,向文件...

    logger日志

    日志记录器(Logger)是日志处理的核心组件。log4j具有5种正常级别(Level)。...比如在这里定义了INFO级别,则应用程序中所有DEBUG级别的日志信息将不被打印出来,也是说大于等于的级别的日志才输出。

    JAVA常用类库之一-日志相关类库.docx

    日志库是很常见的,因为你在每一...打印日志是服务器端应用中最重要的事情,因为日志是你了解你的程序发生了什么的唯一途径。尽管JDK附带自己的日志库,但是还是有很多更好的选择可用,例如 Log4j 、 SLF4j 和 LogBack

    网络打印机编程

    该程序可在java环境中运行(linux或windows)...2. printApp\src\目录下需要建立log4j.properties文件,缺省是在D:\\sstemp\\ss.log文件中记录日志, 可将log4j.appender.A4.Threshold字段设置为OFF关闭日志的记录;

    JSP在线销售管理系统.rar

    JSP在线销售管理系统,简易java(easyjf)框架开源订销管理系统(测试版),服务器环境,tomcat... 4、系统使用Log4j-1.2 作为日志系统,通过更改Web-inf\classes\log4j.properties 的设置可以查看系统运行的详细日志信息.

    C++异步网络IO库,仿java的mina实现

    log4cxx log4j 的 C++ 版本,写日志的。 Postgresql开发 使用了 pqxx 库 这是基于 pq库(postgresql 的 c 语言api ) 的c++库 工程 core : 库工程 工程 tools: 例子 motcp socket存储转发功能,可以将通信的包以...

    jdbcdslog:从 code.google.compjdbcdslog 自动导出

    该项目的目标是为 JDBC 应用程序的 SQL ...日志引擎不可知(感谢 SLF4J,您可以使用大多数流行的日志库,如 log4j、apache 通用日志、java 日志或简单打印到 System.out) 可以记录调用方法堆栈跟踪。 用户指南: :

    xml数据转换

    把XML文档的元素和对应的数据解析出来, 与相关的配置参数(properties文件夹下xml_db.properties)进行遍历比较, 并实现对应的数据库字段数据的插入。 为了实现程序的可扩展性和灵活性 ...采用log4j打印日志记录

    ssm+redis框架,亲测执行成功

    1.maven单项目ssm框架,完全整合 ...3.log4j整合支持mybatis日志打印 4.常用工具类几个 5.非常简洁,且可扩展性非常高,代码具有详细注释 6.数据库只需要创建一个user表即可启动测试,具体字段可看实体类代码

Global site tag (gtag.js) - Google Analytics