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
Logger log
=
Logger.getLogger(LoggerTest.
class
.getName());
/**
Creates a new instance of LoggerTest
*/
public
LoggerTest() {
//
使用此方法避免生成需要输出的字符串
if
(log.isLoggable(Level.FINE)) {
log.log(Level.FINE,
"
start constructing...
"
);
}
}
/**
* 设置指定包的日志输出级别.
*
*
@param
packageName 指定的包
*
@param
fileName 指定日志的输出文件
*
@param
level 日志输出级别
*/
private
static
void
setLogLevel(String packageName, String fileName, Level level) {
try
{
FileHandler fileHandler
=
new
FileHandler(
"
%h/
"
+
fileName
+
"
%u.log
"
);
fileHandler.setFormatter(
new
SimpleFormatter());
ConsoleHandler consoleHandler
=
new
ConsoleHandler();
consoleHandler.setLevel(level);
Logger.getLogger(packageName).addHandler(fileHandler);
Logger.getLogger(packageName).addHandler(consoleHandler);
Logger.getLogger(packageName).setLevel(level);
}
catch
(SecurityException ex) {
ex.printStackTrace();
}
catch
(IOException ex) {
ex.printStackTrace();
}
}
public
static
void
main(String[] args) {
//
启用当前包的全部日志输出
String packageName
=
"
javatest
"
;
setLogLevel(packageName, packageName, Level.ALL);
LoggerTest test
=
new
LoggerTest(); }}