一
为什么要用日志?我的理解是我们使用日志来弥补光使用System.out.println()进行输出所造成的差可读性。
日志的原理?在输出之前增加多个标志位,来实现不同级别的输出,而输出样式、输出级别、输出目的都可以在配置文件中进行配置。
二各种日志工具
(一)JDK日志
import java.util.logging.*;
public class JDKLogTest {
/**
* @param args
*/
public static Logger log = Logger.getLogger(JDKLogTest.class.toString());
static {
Handler console = new ConsoleHandler();
console.setLevel(Level.FINE);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
log.setLevel(Level.FINE);
log.finest("finest");
log.finer("finer");
log.fine("fine");
log.config("config");
log.info("info");
log.warning("warning");
log.severe("servere");
}
}
1.这里特别要注意log.setLevel()和console.setLevel()的不同,前者是:设置日志级别,指定此 logger 记录的消息级别。将级别低于此值的消息丢弃。可以使用级别值 Level.OFF 来关闭日志记录。
而后者是设置日志级别,指定该 Handler 所记录的信息级别。将丢弃低于该值的信息级别。 其目的在于允许开发人员打开大多数日志,但是限制将信息发送到特定 Handlers。
也就是说前者规定日志记录哪些消息级别,而后者规定对于日志记录的这些消息哪些输出到控制台去。
2.JDK Log默认会有个控制台输出,用来输出INFO以上的信息,因此这里INFO级别以上的信息会输出两次。
(二)Log4j控件 使用方式类似JDK日志,但是更加简单
(三)commons-logging控件:不是一个真正的日志工具,如果有Log4j,则commons-logging会把输出原封不动的交给log4j,如果没有log4j.则会将相应输出交给JDK的日志工具。
三Log4j
1.Log4j比JDK自带的日志工具更优秀,Log4j内部做了大量的优化、缓存工作,是输出所需资源更加小。
2.Log4j的配置文件是Log4j.properties,启动时,会自动加载classpath下的log4j.properties初始化Log4j。
3.日志记录器Logger
public Logger log = Logger.getLogger(Log4jConfigTest.class)//参数就代表这个日志记录器的名字。
4.输出地Appender
下面是Log4j配置文件中的代码,一般日志的配置例如,输出级别、输出到哪儿、输出什么附加信息、输出格式等都写在配置文件log4j.properties
## LOGGERS ##
#define a logger
#log4j.rootLogger=DEBUG,console,file
log4j.rootLogger=INFO,console,file
## APPENDERS ##
# define an appender named console, which is set to be a ConsoleAppender
log4j.appender.console=org.apache.log4j.ConsoleAppender
# define an appender named file, which is set to be a RollingFileAppender
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=d:/demo_log.txt
#set the log's size
log4j.appender.file.MaxFileSize=1000KB
log4j.appender.file.MaxBackupIndex=20
## LAYOUTS ##
# assign a SimpleLayout to console appender
log4j.appender.console.layout=org.apache.log4j.SimpleLayout
# assign a PatternLayout to file appender
log4j.appender.file.layout=org.apache.log4j.PatternLayout
# For debug
# log4j.appender.file.layout.ConversionPattern=[%-5p][%t][%C][%d{yyyy-MM-dd HH:mm:ss}] %m%n
# For deployment
log4j.appender.file.layout.ConversionPattern=[%-5p][%d{yyyy-MM-dd HH:mm:ss}] %m%n
分享到:
相关推荐
总的来说,Python的logging模块是一个功能强大的工具,能够帮助开发者实现灵活且易于管理的日志系统。通过理解和熟练使用这个模块,可以提升软件的可维护性和稳定性,尤其在处理复杂问题和排查错误时,日志记录显得...
《ELK日志系统浅析与部署》 在现代企业应用环境中,日志管理成为了一个不可或缺的环节。传统的日志记录方式,由于分散且缺乏统一的管理,导致开发人员和运维人员在面对服务问题时,难以快速定位和解决。ELK...
1. **日志消息**:学会如何在ROS程序中记录和查看日志消息,这对于调试非常重要。 2. **计算图源命名**:理解ROS中的命名规则,如全局名称、相对名称、私有名称等,以及如何处理名称冲突。 3. **启动文件**:创建和...
### 浅析Oracle数据库备份和恢复 #### 一、引言 随着信息技术的快速发展,数据库在企业中的作用日益显著。为了确保数据的安全性和可靠性,Oracle数据库的备份与恢复技术成为了数据库管理的重要组成部分。本文旨在...
深度学习使用浅析 在深度学习领域,Caffe是一个广泛使用的框架,因其高效和灵活性而备受青睐。本文将深入探讨如何使用Caffe进行深度学习,包括CUDNN的安装、数据转换、模型训练以及模型在OpenCV中的应用。 1. ...
本文将围绕“浅析SQL Server数据库备份”这一主题,探讨SQL Server数据库备份的基本概念、类型、策略以及最佳实践。 首先,我们需要了解SQL Server数据库备份的基本概念。备份是将数据库中的数据复制到另一存储介质...
总之,监控和记录Apache服务器的运行状态是运维工作的重要部分,通过定制日志格式、创建自定义日志文件以及利用外部工具,我们可以更有效地管理和维护服务器,确保其稳定运行并及时发现潜在问题。对于大型和复杂的...
本文将详细介绍Apache服务器的日志管理方法,包括默认的日志文件、日志格式的定制以及如何利用第三方工具增强日志功能。 #### 二、Apache默认的日志文件 Apache默认提供了两种类型的日志文件:`access_log` 和 `...
在Android开发过程中,ADB(Android Debug Bridge)是一个至关重要的工具,用于开发者进行设备调试、日志收集、文件传输等操作。本文将深入剖析ADB的创建流程,特别是数据在PC与手机之间的交互过程。 首先,ADB主要由...
- **查看日志**:如何通过命令行工具如`show binlog events`来查看binlog的内容。 - **启用和配置binlog**:如何在MySQL配置文件中设置binlog的相关参数。 - **主从复制**:binlog在主从复制中的作用和配置步骤。 - ...
在本讲座"Postgres_2017象行中国杭州第一期_张文杰(卓刀)_Greenplum备份恢复浅析"中,张文杰(卓刀)深入探讨了Greenplum数据库的备份与恢复策略,这对于任何运行大型数据仓库或分析系统的组织来说都是至关重要的...
- 词法分析是解析SQL的第一步,使用成熟的工具(如YACC/LEX)生成解析器,定义灵活的语法规则,方便扩展和修改,生成统一的语法树。 以上就是从腾讯大讲堂数据库内核设计思路浅析学习教案中提炼出的关键知识点,...
常见的数据库监控优化技术包括使用数据库性能监控工具、使用数据库日志分析工具等。 9. 数据备份与恢复优化:数据备份与恢复是指对数据库中的数据进行备份和恢复,以防止数据丢失。数据备份与恢复优化是指对数据...
在遇到问题时,日志文件和社区论坛都能提供宝贵的调试信息。 总结来说,Linux内核配置系统是一个复杂而关键的过程,它允许我们根据系统需求定制内核,优化性能,增强安全性。理解和熟练掌握内核配置不仅能提升系统...
【标题】:“浅析WebWork” 【正文】: WebWork是一个历史悠久的Java Web应用程序框架,它在早期的Web开发中扮演了重要的角色,为开发者提供了强大的MVC(模型-视图-控制器)架构支持。本篇文章将深入探讨WebWork...
### Android中的Shell命令浅析 #### 一、引言 在Android开发过程中,熟练掌握shell命令对于调试和管理Android应用程序至关重要。本文将详细介绍Android中常用的shell命令及其应用场景,并针对可能出现的问题提供...