<a href="http://www.163.com">网易</a>
------- android培训、java培训、期待与您交流! ---------- Logger 1、logging.Logger 基本描述: Logger对象,从类名可知,其作用是给系统或者应用组件记录信息。 每一个Logger对象都有名字,可以是任意字符串,但名字一般基于被记录组件的包名或类名,如 java.net 或 javax.swing。此外,可以创建“匿名”的 Logger,其名称未存储在 Logger 命名空间中。 —————————————————————————————————— 可通过调用某个 getLogger 工厂方法来获得 Logger 对象。这些方法要么创建一个新 Logger,要么返回一个合适的现有 Logger。 —————————————————————————————————— 日志信息会被转发给通过setHandler()注册到Logger对象上的Handler对象,Handler再将日志信息转发给多种设备:控制台,文件,OS log等 每一个Logger跟踪父Logger,比如:创建一个日志名a.b.c.d,又创建一个日志a.b,没有创建日志a.b.c,那么a.b.c.d的父Logger是名字为a.b的Logger —————————————————————————————————— 每一个Logger有一个Level,影响Logger对象处理哪些层次的日志信息,如果日志请求的level比log level低,那么日志信息不被显示。称为cheap test。 Logger的级别全部定义在java.util.logging.Level里面: 各级别按序排列如下: SEVERE(最高值) WARNING INFO CONFIG FINE FINER FINEST(最低值) 此外,还有级别OFF用来关闭日志记录,ALL用来启用所有消息的日志记录 Logger的默认级别是INFO,比INFO低的日志将不显示,即使通过设定level也无济于事,Logger的默认级别定义在jre/ lib/logging.properties: # Limit the message that are printed on the console to INFO and above. java.util.logging.ConsoleHandler.level = INFO 如果log level 等于null,那么level等于父Logger的level。log level 能够通过properties配置文件来设置,当然,log level也可以通过调用setLevle()方法来动态改变。 如果通过了cheap test,说明日志信息能够被输出,那么用什么来描述日志信息呢?LogRecord!当然,Logger还会调用Filter(如果存在)过滤日志信息。通过的日志信息会被转发给Handler,日志信息也会转发给父Logger的Handler。 创建Logger对象: static Logger getLogger(String name) static Logger getLogger(String name, String resourceBundleName) 创建Logger对象,如果已经存在名为name的Logger对象,则返回该对象,同一个名称的Logger只有一个 Logger的成员方法: log()系列方法:记录日志信息 logp()系列方法:更精确的记录日志信息 便捷方法:记录相应Level的日志信息 severe(String msg):Log a SEVERE message warning(String msg):Log a WARNING message info(String msg):Log an INFO message config(String msg):Log a CONFIG message fine(String msg) :Log a FINE message finer(String msg):Log a FINER message finest(String msg):Log a FINEST message getName():获取日志的名字 getParent():获取父Logger对象 getLevel():获取日志的级别 getHandlers:获取和日志关联的Handler setLevel():设定日志的级别 setParent():设定父Logger对象 setFilter():设定Filter 2、logging.Handler Handler是做什么的?Handler 对象从 Logger 中获取日志信息,并将这些信息导出。例如,它可将这些信息写入控制台或文件中,也可以将这些信息发送到网络日志服务中,或将其转发到操作系统日志中。 可通过执行 setLevel(Level.OFF) 来禁用 Handler,并可通过执行适当级别的 setLevel 来重新启用。 Handler 类通常使用 LogManager 属性来设置 Handler 的 Filter、Formatter 和 Level 的默认值。实际上Handler需要为设置Level,Filter,Formatter负责 Handler的class family: java.util.logging.Handler |--java.util.logging.MemoryHandler |--java.util.logging.StreamHandler |--java.util.logging.ConsoleHandler |--java.util.logging.FileHandler |--java.util.logging.SocketHandler 查看日志文件: 默认的日志方式是XML格式,通过Formatter来自定义格式 Handler的成员方法: getLevel():获取Handler的Level getFormatter():获取Handler的Formatter getFilter():获取Handler的Filter setLevel(): setFormatter(): setFilter(): 3、logging.Formatter Formatter 为格式化 LogRecords 提供支持。 一般来说,每个日志记录的Handler 都有关联的 Formatter。Formatter 接受 LogRecord,并将它转换为一个字符串。 Formatter的class family: java.util.logging.Formatter |--java.util.logging.SimpleFormatter |--java.util.logging.XMLFormatter 4、logging.LogRecord LogRecord 对象用于在日志框架和单个日志 Handler 之间传递日志请求。 LogRecord(Level level, String msg) :用给定级别和消息值构造 LogRecord 5、JDK自带的logging.properties文件 参考:logging.properties
分享到:
相关推荐
Log4J是一款非常流行的Java日志框架,被广泛应用于各种规模的应用程序中。它提供了灵活的日志记录机制,可以将日志输出到不同的目的地,如控制台、文件、数据库等,并且支持多种格式化选项来满足不同场景的需求。...
SLF4J是一个抽象层,它为各种日志框架提供了统一的API,如Log4j、Java Util Logging等。通过SLF4J,开发者可以在不修改代码的情况下更换日志实现,增强了代码的可移植性。 ### 2. Logback介绍 Logback是由Ceki Gü...
这个示例是基于“瑞吉外卖”项目,由黑马程序员提供,通过集成SpringBoot的`spring-boot-starter-mail`依赖来实现这一功能。 首先,我们需要在项目的`pom.xml`文件中添加SpringBoot的邮件服务依赖: ```xml ...
2. **src/main/resources**:存储配置文件,如数据库连接配置(JDBC)、Spring配置、log4j配置等。 3. **src/main/webapp**:Web应用目录,包括WEB-INF目录下的web.xml(部署描述符),jsp文件,静态资源(图片、CSS...
- commons-lang、commons-logging、log4j-api、log4j-core等。 5. **整合步骤**: - 配置Spring的Bean定义,声明Struts2的Action类和Hibernate的SessionFactory。 - 配置Struts2的配置文件,定义Action的执行...
例如,使用try-catch-finally语句处理可能出现的运行时异常,通过Log4j等工具记录系统日志,便于后期排查问题。另外,通过合理的数据库设计和索引优化,提高查询速度。 此外,项目可能还采用了版本控制系统如Git...
Log4j或Logback用于日志记录,而Prometheus和Grafana则可用来收集和展示系统指标,及时发现并处理问题。 10. **测试与部署**:单元测试、集成测试和压力测试确保代码质量,Docker和Kubernetes则用于应用的容器化和...
日志记录对于调试和问题排查至关重要,SSM框架提供了多种日志实现,如Log4j、SLF4J等。 课程资源可能包含详细的步骤指导、示例代码、项目结构分析等,帮助学习者理解SSM整合的各个环节。通过阅读"SSM框架整合教程...
【描述】"travel-web-maven:黑马旅游网全部源码+附加功能" 提示我们,这是一个以Maven为构建工具的Java Web项目,可能是由黑马程序员社区提供的。Maven是一个广泛使用的项目管理和集成工具,它帮助开发者管理项目的...
同时,日志记录(如Log4j)能帮助开发者追踪和诊断系统运行中的问题,提升系统的可调试性。 9. **安全性考虑** 客户管理系统需要对用户登录、权限控制等方面进行安全设计,例如使用HTTPS协议保证数据传输的安全,...