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_log4j日志详解.doc )
Java生产环境下性能监控与调优详解视频教程 jstat查看JVM统计信息 jstack与线程的状态 MAT 分析内存溢出的方法 可视化工具分析GC日志 通过这套视频学习如何在生产环境下进行性能监控与调优。 视频在百度网盘中...
涵盖了加密和解密、安全认证和授权、安全通信和防护、安全漏洞和漏洞扫描、密码学、安全日志和审计等方面。每个知识点都通过详细的解析和说明,帮助读者全面了解Java安全相关概念、原理和应用。无论您是希望加强Java...
主要介绍了Java中 log4j日志级别配置详解,需要的朋友可以参考下
主要介绍了Java日志正确使用姿势,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
在本文里我们给大家整理了关于Java日志组件间关系相关基础知识,需要的朋友们跟着学习下。
第19章 使用log4j进行日志操作 564 19.1 log4j介绍 564 19.1.1 logger组件 564 19.1.2 appender组件 566 19.1.3 layout组件 567 19.2 使用log4j 568 19.3 log4j使用实例 572 19.4 ndc和mdc 585 19.5 小结 ...
主要介绍了Java日志API管理最佳实践详解,记录日志只是有效地利用日志的第一步,更重要的是如何对程序运行时产生的日志进行处理和分析。,需要的朋友可以参考下
第19章 使用log4j进行日志操作 564 19.1 log4j介绍 564 19.1.1 logger组件 564 19.1.2 appender组件 566 19.1.3 layout组件 567 19.2 使用log4j 568 19.3 log4j使用实例 572 19.4 ndc和mdc 585 19.5 小结 ...
主要介绍了Java日志框架之logback使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
像这样的日志代码会更好: if (log.isLoggable(Level.FINE)) { log.log(Level.FINE, "I am here, and the value of X is {} and Y is {}", new Object[]{calcX(), calcY()}); } 应用的性能取决于它的代码如何...
第19章 使用log4j进行日志操作 564 19.1 log4j介绍 564 19.1.1 logger组件 564 19.1.2 appender组件 566 19.1.3 layout组件 567 19.2 使用log4j 568 19.3 log4j使用实例 572 19.4 ndc和mdc 585 19.5 小结 ...
像这样的日志代码会更好: if (log.isLoggable(Level.FINE)) { log.log(Level.FINE, "I am here, and the value of X is {} and Y is {}", new Object[]{calcX(), calcY()}); } 应用的性能取决于它的代码如何...
像这样的日志代码会更好: if (log.isLoggable(Level.FINE)) { log.log(Level.FINE, "I am here, and the value of X is {} and Y is {}", new Object[]{calcX(), calcY()}); } 应用的性能取决于它的代码如何...
记得前几年工作的时候,公司使用的日志框架还是log4j,大约从16年中到现在,不管是我参与的别人已经搭建好的项目还是我自己主导的项目,日志框架基本都换成了logback,总结一下,logback大约有以下的一些优点:内核...