1.简介:
ava.util.logging,它可以对程序中的日志记录进行相当复杂的控制。例如:通过它可以指定日志的级别和日志的位置(控制台、文件、套接字、
内存缓冲区),也可以创建子记录器,通过它可以用程序控制的方式来指定想记录的内容,也可以使用配置文件来指定,而不需要去改动程序。
2.体系:
3.实例:
import java.util.logging.Logger;
import java.util.logging.Level;
import java.util.logging.Handler;
import java.util.logging.FileHandler;
import java.io.IOException;
public class LogDemo3 {
static Logger logger = Logger.getLogger("");
public static void main(String arg[]) {
try {
FileHandler fh = new FileHandler("logfile");
logger.addHandler(fh);
} catch(IOException e) {
System.err.println("Cannot open log file for output");
}
Handler handler[] = logger.getHandlers();
for(int i=0; i<handler.length; i++)
handler[i].setLevel(Level.FINEST);
logger.setLevel(Level.FINEST);
LogDemo3 ld = new LogDemo3();
ld.demonstrate();
}
LogDemo3() {
logger.info("LogDemo3 instantiated.");
}
public void demonstrate() {
logger.fine("Entering the demonstrate method.");
for(int i=0; i<10; i++) {
logger.finest("Loop counter: " + i);
}
logger.fine("Exiting the demonstrate method.");
}
}
4.技巧(转载)
java
.util
.logging
包提供了强大的日志输出功能,正确和有效的使用这些功能需要一些技巧:
- 了解不同的Level
, Level
.FINE
, LEVEL
.FINER
,LEVEL
.FINEST
用来调试和跟踪程序,比如打印一些调试信息,异常等。Level
.INFO
将打印信息到控制台。
- 使用Logger.isLoggable(Level
)
方法检测当前的Level
,以此来判断是否输出日志,日志也应该遵循需要时才输出的原则,避免生成大量的调试信息字符串,占用系统内存,影响性能。
- 必要时程序化的打开和关闭日志,例如在开发程序时开启大部分日志,为了查错和调试程序,在程序发布时关闭大部分日志,避免影响客户和影响程序性能。
- 必要时可以针对一个模块使用唯一的Logger
,也就是创建Logger
时传入子模块的名字,所有类使用同一个Logger
,避免生成太多的Logger
实例。
- 下边是使用日志工具的一段代码:
package
javatest;
import
java
.io.IOException;
import
java
.util
.logging
.ConsoleHandler;
import
java
.util
.logging
.FileHandler;
import
java
.util
.logging
.Level
;
import
java
.util
.logging
.Logger;
import
java
.util
.logging
.SimpleFormatter;
/**
*/
public
class
LoggerTest{
//
构建Logger
private
static
Loggerlog
=
Logger.getLogger(LoggerTest.
class
.getName());
/**
CreatesanewinstanceofLoggerTest
*/
public
LoggerTest(){
//
使用此方法避免生成需要输出的字符串
if
(log.isLoggable(Level
.FINE)){
log.log(Level
.FINE,
"
startconstructing...
"
);
}
}
/**
*设置指定包的日志输出级别.
*
*
@param
packageName指定的包
*
@param
fileName指定日志的输出文件
*
@param
level
日志输出级别
*/
private
static
void
setLogLevel(StringpackageName,StringfileName,Level
level
){
try
{
FileHandlerfileHandler
=
new
FileHandler(
"
%h/
"
+
fileName
+
"
%u.log
"
);
fileHandler.setFormatter(
new
SimpleFormatter());
ConsoleHandlerconsoleHandler
=
new
ConsoleHandler();
consoleHandler.setLevel(level
);
Logger.getLogger(packageName).addHandler(fileHandler);
Logger.getLogger(packageName).addHandler(consoleHandler);
Logger.getLogger(packageName).setLevel(level
);
}
catch
(SecurityExceptionex){
ex.printStackTrace();
}
catch
(IOExceptionex){
ex.printStackTrace();
}
}
public
static
void
main(String[]args){
//
启用当前包的全部日志输出
StringpackageName
=
"
javatest
"
;
setLogLevel(packageName,packageName,Level
.ALL);
LoggerTesttest
=
new
LoggerTest();
}
}
分享到:
相关推荐
——————————————————————————————————————————————
Java JDK 6学习笔记——ppt简体版.rar
Java JDK 6学习笔记——ppt简体版加课本代码
Java JDK 6学习笔记——ppt简体版
Java JDK 6学习笔记——ppt简体版 第21章.ppt
Java JDK 6学习笔记——ppt简体版 第20章.ppt
Java JDK 6学习笔记——ppt简体版 第19章.ppt
Java JDK 6学习笔记——ppt简体版 第18章.ppt
Java JDK 6学习笔记——ppt简体版 第17章.ppt
良葛格的Java学习笔记~讲解得非常详细。JDK5.0的~是Java入门的不错选择。
STM32H743IIT6学习笔记04——移植LetterShell,演示工程源码下载链接
良葛格————JavaJDK5.0学良葛格————JavaJDK5.0学习笔记PDF.rar习笔记PDF.rar良葛格良葛格————JavaJDK5.0学习笔记PDF.rar————JavaJDK5.0学习笔记PDF.rar良葛格————JavaJDK5.0学习笔记PDF.rar良...
Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习...
此资源为我跟着B站up主【遇见狂神说】java系列视频中前端入门部分学习过程中所写 大部分和视频保持一致,有一些自己的理解和一些扩展的部分