在程序中打印日志,不仅便于自已测试,还便于联调,增强代码的可读性。
不论使用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;
}
相关推荐
Log4j的设计理念是“日志在哪里产生就在哪里处理”,这使得它能够方便地集成到各种应用程序中,无论是简单的控制台输出,还是复杂的数据库存储,都能轻松应对。 2. **Log4j组件** - **Logger**: 日志记录器,负责...
在Log4j2中,异步日志打印是一种提高日志处理效率的重要特性。传统的日志系统在处理大量日志时可能会成为系统性能瓶颈,因为它们通常是同步的,这意味着每个日志事件都会阻塞应用程序的执行直到日志被写入。Log4j2...
Log4j 是一个广泛使用的日志记录工具,能够帮助开发者跟踪应用程序运行过程中的信息、警告、错误等事件。本文将深入探讨如何在 MyBatis 中配置 Log4j,实现日志同时输出到后台控制台和文件。 1. **日志框架集成** ...
Log4j是Apache提供的一款强大的日志处理框架,它灵活且功能强大,广泛应用于各种Java项目中。本话题将深入探讨如何使用Log4j实现多文件输出打印,以及自定义日志的配置。 首先,我们要理解Log4j的基本工作原理。Log...
通过这个`java关于log4j打印日志demo`,我们可以学习到如何配置和使用Log4j,理解其工作原理,以及如何在实际项目中有效地利用日志系统。实践这个示例将帮助你更好地掌握Java日志记录的最佳实践。
上述配置中,`log4j.appender.FILE.File`指定了日志文件的路径,`${user.home}/logs/myapp.log`表示日志将被写入用户主目录下的logs文件夹中的myapp.log文件。通过改变这个路径,我们就能动态地改变日志输出的位置。...
这篇博客"Log4j 把不同包的日志打印到不同位置"可能详细解释了如何利用Log4j配置来实现特定包的日志定向输出,以便于管理和分析来自不同模块的日志信息。 在Java应用中,我们常常会遇到多个模块或者不同包的类同时...
在IT行业中,日志记录是调试和监控应用程序的关键部分,特别是对于Java开发者而言,Log4j是一个非常常用的日志框架。当我们遇到“无法打出log4j日志的问题”,这通常是由于配置、环境或代码实现中的某些错误导致的。...
**正文** 日志系统在软件开发中扮演着至关重要的角色,它可以帮助开发者追踪程序...在"log4j日志打印demo"中,你将学习到如何设置Log4j以实现控制台和SD卡(针对Android)的日志输出,从而在实际开发中更加得心应手。
在IT行业中,日志记录是系统调试、性能分析和故障排查的重要工具,而Log4j则是Java编程语言中广泛使用的日志框架之一。本工程基于Eclipse IDE,配置了一个简单的Log4j设置,实现了每天自动将日志输出到一个特定命名...
在《Log4j将System.out搞到log4j中输出四》这篇博文中,作者可能详细讨论了这些步骤,并可能分享了一些实战经验。通过学习这篇博文,读者可以更深入地了解如何在实际项目中实现这一转换,提升日志管理的效率。 总结...
Log4j,作为Java领域中最广泛使用的日志记录框架之一,其强大的功能和灵活性深受开发者喜爱。本文将详细介绍Log4j的基本概念、配置和使用,以及如何将其融入自定义的日志记录工具中。 1. **Log4j简介** - Log4j是...
《深入理解Log4j:如何将日志打印到控制台》 日志系统在软件开发中扮演着至关重要的角色,它能帮助开发者追踪程序运行状态、定位错误和调试问题。Log4j作为Java世界中最流行的日志框架之一,因其强大的功能和灵活性...
通过上述步骤,我们成功地在 Java Web 项目中集成了 Log4j,并配置了日志的输出方式。这种方式不仅方便了日志的管理,还提高了应用程序的可维护性。对于复杂的日志需求,可以通过进一步配置来实现。例如,可以设置...
Log4J采用类似C语言中的printf函数的打印格式格式化日志信息,常用打印参数包括: - `%m` 输出代码中指定的消息 - `%p` 输出优先级,如DEBUG、INFO、WARN、ERROR、FATAL - `%r` 输出自应用启动到输出该log信息耗费...
在Java开发中,日志记录是一项...通过调整Log4j的配置,开发者可以方便地查看并理解应用程序中的数据库操作,从而提高代码的可维护性和性能。在实际开发中,合理地使用日志记录能够极大地提升开发效率和问题定位能力。
而Log4j的定时打印日志功能则可以让开发者在特定时间点获取日志信息,便于了解程序在不同时间段的行为。 首先,我们需要在Java项目中引入Log4j的相关依赖。通常,这可以通过在pom.xml文件中添加Maven依赖或者在...
Log4j是Apache组织开发的一款强大的Java日志记录框架,广泛应用于各种Java应用程序中,用于收集、管理和分析应用程序运行过程中的日志信息。这个压缩包`log4j.zip`包含了与Log4j相关的多个资源,旨在帮助用户学习和...
Log4j2 是 Java 语言中一种流行的日志记录工具,它提供了灵活的日志记录管理功能。下面我们将学习 Log4j2 配置模板的使用和配置。 引入 Log4j2 依赖 在使用 Log4j2 之前,需要在 Maven 项目中引入 Log4j2 的依赖...
4. **打印日志消息**:通过调用 Logger 对象的方法(如 `info(String msg)`、`error(String msg, Throwable t)` 等)来记录不同级别的日志消息。 #### 四、log4j 配置详解 1. **配置文件**: - `log4j.properties...