1.简介
(1)收获
最近在学日志,log4j2, logback, log4j 什么的,比较多的问题, 反倒忽略了最简单的Java.util.logging。
开始学Java.util.logging的日志,我还以为它没有什么输出方式呢,没想到居然还不错,由其是单例日志等。
试了很多错,不多说了。
(2)无论properties配置(输出文件),还是其他什么的,控制输出的都是
2.示例
(一)输出文件地址配置
a.直接上代码,properties配置,注意:需要更改文件输出的地址,改为自己的电脑上的就好,就是下面这句话
java.util.logging.FileHandler.pattern = D:\\workspace\\Log4JLogback\\Log4J2\\src\\main\\java\\util\\logging\\Logs\\TestProperties.log
# 输出到文件和控制台
handlers= java.util.logging.FileHandler,java.util.logging.ConsoleHandler
# root日志输出级别 level
.level= ALL
# 控制台输出级别和格式
java.util.logging.ConsoleHandler.level = FINER
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
# 文件输出级别和地址
java.util.logging.FileHandler.level=CONFIG
java.util.logging.FileHandler.pattern = D:\\workspace\\Log4JLogback\\Log4J2\\src\\main\\java\\util\\logging\\Logs\\TestProperties.log
#限制文件的大小(50000字节)
java.util.logging.FileHandler.limit = 50000
#过滤,总共保存1个文件,接着猜覆盖
java.util.logging.FileHandler.count = 1
#XMLFormatter是以xml样式输出,SimpleFormatter是以普通样式输出
java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter
#指定是否应该将 FileHandler 追加到任何现有文件上(false会覆盖,但默认为false)。
java.util.logging.FileHandler.append=true
java代码如下,注意InputStream in = getProperties.class.getResourceAsStream("/logging.properties");是有斜杠的;
推荐propreties配置读取六种方法网址:http://blog.csdn.net/Senton/article/details/4083127
/***Created by mo
*On 2017/9/14 ***13:14.
******/
import UtilTest.PropertiesTest.getProperties;
import java.io.IOException;
import java.io.InputStream;
import java.util.logging.LogManager;
import java.util.logging.Logger;
public class LoggerPropreties {
static Logger logger = Logger.getLogger("LoggerPropreties");
static LogManager logManager = LogManager.getLogManager();
public static void main(String[] args) throws IOException{
try {//读取配制文件
InputStream in = getProperties.class.getResourceAsStream("/logging.properties");//注意配置
logManager.readConfiguration(in);
logManager.addLogger(logger); //添加Logger
logger.severe("这是[severe]信息");
logger.warning("这是[warning]信息");
logger.info("这是[info]信息");
logger.config("这是[config]信息");
logger.fine("这是[fine]信息");
logger.finer("这是[finer]信息");
logger.finest("这是[finest]信息");
} catch (SecurityException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch(ArithmeticException e) {
e.printStackTrace();
}
}
}
得到结果:
1.控制台日志输出
2.log文件日志
希望对你有所帮助!