Java 日志详解

[size=large]Java 日志详解[/size]

1. Java 日志体系主要分为Facade 和具体的日志实现。当前主流的Facade主要由
[list]
[*] apache-comnons-logging
[*] slf4j
[*] log4j2
[/list]

2. 主流的日志实现由以下几种
[list]
[*] java.util.logging
[*] log4j
[*] logback
[/list]

3. 参考
[list]
[*] http://my.oschina.net/xianggao/blog/515381
[*] http://www.ibm.com/developerworks/cn/java/j-lo-practicelog/
[/list]

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");
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值