Java 日志详解
1. Java 日志体系主要分为Facade 和具体的日志实现。当前主流的Facade主要由
- apache-comnons-logging
- slf4j
- log4j2
2. 主流的日志实现由以下几种
- java.util.logging
- log4j
- logback
3. 参考
- http://my.oschina.net/xianggao/blog/515381
- http://www.ibm.com/developerworks/cn/java/j-lo-practicelog/
4. 具体的代码
4.1 JDK自带
import java.io.IOException;
import java.io.InputStream;
import java.util.logging.Level;
import java.util.logging.LogManager;
import java.util.logging.Logger;
/**
* Created by zhaoyu on 16-7-11.
*/
public class JdkLogging {
private static Logger logger = null;
private JdkLogging() {}
public static Logger getLogger(String name) {
InputStream stream = JdkLogging.class.getResourceAsStream("/logging.properties");
if (logger == null) {
try {
LogManager.getLogManager().readConfiguration(stream);
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
stream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
logger = Logger.getLogger(name);
}
return logger;
}
public static void main(String[] args) {
Logger logger = JdkLogging.getLogger(JdkLogging.class.getName());
//Logger logger = Logger.getLogger(JdkLogging.class.getName(), null);
// logger.setLevel(Level.CONFIG);
logger.severe("java utils logging level severe.");
logger.warning("java utils logging level warning.");
logger.info("java utils logging level info.");
logger.config("java utils logging level config.");
logger.fine("java utils logging level fine.");
logger.finer("java utils logging level finer.");
logger.finest("java utils logging level finest.");
}
}
4.2 log4j
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
import org.apache.log4j.helpers.Loader;
/**
* Created by zhaoyu on 16-7-11.
*/
public class Log4jLogging {
private static final Logger LOGGER = Logger.getLogger(Log4jLogging.class);
public static void main(String[] args) {
LOGGER.info("this is log4j info log.");
LOGGER.error("this is log4j error log.");
// load log4j.properties
//PropertyConfigurator.configure(Log4jLogging.class.getResource("/log4jx.properties"));
PropertyConfigurator.configure(Loader.getResource("log4jx.properties"));
if (LOGGER.isTraceEnabled()) {
LOGGER.trace("this is log4j trace log.");
}
}
}
4.3 log4j2
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
/**
* Created by zhaoyu on 16-7-11.
*/
public class Log4j2Logging {
private static final Logger LOGGER = LogManager.getLogger(Log4j2Logging.class);
public static void main(String[] args) {
LOGGER.info("log4j2 info");
LOGGER.debug("log4j2 debug");
}
}
4.4 apache-commons-logging
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
/**
* Created by zhaoyu on 16-7-11.
*/
public class ApacheCommonsLog {
private static final Log LOG = LogFactory.getLog(ApacheCommonsLog.class);
public static void main(String[] args) {
LOG.info("apache commons log.");
}
}
4.5 logback 与slf4j
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Created by zhaoyu on 16-7-11.
*/
public class Slf4jLogging {
private static final Logger LOGGER = LoggerFactory.getLogger(Slf4jLogging.class);
public static void main(String[] args) {
// logback
LOGGER.info("logback info log");
LOGGER.debug("logback debug log");
}
}
分享到:
相关推荐
java_java日志详解.pdf
java_java日志详解[汇编].pdf
efk7.13搜集java日志—filebeat配置详解笔记总结
Java日志框架详解.ppt
Java日志框架是Java开发中不可或缺的部分,它们用于记录应用程序的运行信息,帮助开发者追踪错误、调试代码以及进行性能分析。Log4j和Logback是其中最常用的两个框架,它们都由Ceki Gülcü创建,并且在设计上有着...
根据提供的文件信息,我们可以深入探讨Java日志系统的关键概念与技术细节。日志在软件开发过程中扮演着极其重要的角色,它不仅有助于问题诊断,还能帮助我们监控应用的行为和性能。 ### Java日志系统概述 Java日志...
文件名中的"JAVA应用开发日志解决方案"、"java_java日志详解"以及"Log4j使用方法"等,都是关于如何在Java环境中有效地进行日志记录的资源,特别强调了Log4j这一常用的日志框架。 5. **Log4j**:Log4j是Java日志工具...
### Tomcat与Java Web开发技术详解 #### 一、Tomcat简介 Tomcat是一款开源的Servlet容器,由Apache软件基金会下属的Jakarta项目开发。它实现了对Servlet和JavaServer Pages (JSP)的支持,可以作为独立的应用服务器...
它提供了JAVA对象的序列化和虚拟机内部通信的功能,使得开发者能够迅速构建高性能、高可扩展性的网络应用。Mina的核心特性是其事件驱动、异步(基于Java NIO)的编程模型,使得处理网络通信变得更加高效。 Mina分为...
Java开发人员来说,是最初级的日志记录方式。然而,随着项目复杂度的提升,这种简单的打印方式就显得力不从心。此时,就需要引入更专业、更强大的日志框架,比如Log4j。 Log4j是Apache组织提供的一款开源的日志记录...
代理对象可以在调用实际方法之前或之后添加额外的行为,如日志记录、性能监控、事务管理等。通常,我们首先创建一个实现了`InvocationHandler`接口的类,然后使用`Proxy.newProxyInstance()`方法生成代理对象。 ...
默认情况下,日志会被保存在Java程序运行的当前目录下,文件名为`hs_err_pid.log`。 另一个重要的参数是`-XX:OnError`,它允许我们在JVM崩溃时执行自定义的命令,比如`pmap %p`用于显示进程的内存映射,或者`gcore ...
《Tomcat与Java Web开发技术详解》是孙卫琴老师撰写的一本深入解析Java Web开发和Tomcat服务器的著作,其第二版进一步更新了内容,提供了更为详尽的指导。这本书针对初学者和有一定经验的开发者,旨在帮助读者掌握...
【标题】:“Tomcat与Java.Web开发技术详解”是一本深度探讨Tomcat服务器与Java Web应用开发的专业资料,旨在帮助开发者全面理解并掌握这两项关键技术。 【内容详解】: 1. **Tomcat介绍**:Tomcat是Apache软件基金...
13. **命令模式**:将请求封装为一个对象,使得可以使用不同的请求、队列或者日志请求,也可以支持撤销操作。 14. **责任链模式**:处理请求的类形成一个链,每个类都可以处理请求或将其传递给链上的下一个类。 15...
《Tomcat与Java Web开发技术详解(第2版)》是一本深入探讨Java Web应用程序部署和运行环境的权威指南。本书主要围绕Apache Tomcat服务器展开,涵盖了从基础概念到高级特性的全方位讲解,旨在帮助读者掌握Java Web...
《Tomcat与Java Web开发技术详解》是由知名Java专家孙卫琴编著的一本深入解析Tomcat和Java Web开发的专业书籍。这本书旨在帮助开发者全面理解如何利用Tomcat服务器进行高效、稳定的应用程序部署和管理,同时涵盖了...
Java日志是软件开发中的重要组成部分,用于记录应用程序运行过程中的事件和问题,方便后期的调试和问题定位。本文将详细介绍Java日志的正确使用姿势,以提高开发效率和问题解决能力。 首先,日志文件的命名至关重要...