Java Logger不';t登录到控制台
我已经为下面的类创建了一个Java Logger不';t登录到控制台,java,logging,Java,Logging,我已经为下面的类创建了一个 package bgu.spl.utils; import java.util.logging.ConsoleHandler; import java.util.logging.Level; import java.util.logging.Logger; import java.util.logging.SimpleFormatter; public class AppLogger { private final static Logger _logg
package bgu.spl.utils;
import java.util.logging.ConsoleHandler;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.logging.SimpleFormatter;
public class AppLogger
{
private final static Logger _logger = Logger.getLogger("MyAppLogger");
private static boolean _isInited = false;
private synchronized static void init()
{
_logger.setLevel(Level.ALL);
ConsoleHandler handler = new ConsoleHandler();
handler.setFormatter(new SimpleFormatter());
handler.setLevel(Level.ALL);
_logger.addHandler(handler);
_isInited = true;
}
public synchronized static void general (String text)
{
if (_isInited)
init();
System.out.println(text);
}
private static String tickStr(int tick)
{
return tick < 0 ? "" : (" - Tick: " + tick);
}
public synchronized static void severe (Class<?> type, String text, int tick)
{
if (_isInited)
init();
_logger.severe(type.getName() + tickStr(tick) + ". " + text);
}
public synchronized static void warning (Class<?> type, String text, int tick)
{
if (_isInited)
init();
_logger.warning(type.getName() + tickStr(tick) + ". " + text);
}
public synchronized static void info (Class<?> type, String text, int tick)
{
if (_isInited)
init();
_logger.info(type.getName() + tickStr(tick) + ". " + text);
}
public synchronized static void config (Class<?> type, String text, int tick)
{
if (_isInited)
init();
_logger.config(type.getName() + tickStr(tick) + ". " + text);
}
public synchronized static void fine (Class<?> type, String text, int tick)
{
if (_isInited)
init();
_logger.fine(type.getName() + tickStr(tick) + ". " + text);
}
public synchronized static void finer (Class<?> type, String text, int tick)
{
if (_isInited)
init();
_logger.finer(type.getName() + tickStr(tick) + ". " + text);
}
public synchronized static void finest (Class<?> type, String text, int tick)
{
if (_isInited)
init();
_logger.finest(type.getName() + tickStr(tick) + ". " + text);
}
}
包bgu.spl.utils;
导入java.util.logging.ConsoleHandler;
导入java.util.logging.Level;
导入java.util.logging.Logger;
导入java.util.logging.SimpleFormatter;
公共类应用程序记录器
{
私有最终静态记录器_Logger=Logger.getLogger(“MyAppLogger”);
私有静态布尔值_isInited=false;
私有同步静态void init()
{
_logger.setLevel(Level.ALL);
ConsoleHandler handler=新的ConsoleHandler();
setFormatter(新的SimpleFormatter());
handler.setLevel(Level.ALL);
_addHandler(handler);
_isInited=真;
}
公共同步静态void常规(字符串文本)
{
如果(被监视)
init();
System.out.println(文本);
}
私有静态字符串tickStr(int tick)
{
返回勾号<0?”:(“-勾号:+勾号);
}
公共同步静态无效严重(类类型、字符串文本、整数勾号)
{
如果(被监视)
init();
_logger.severy(type.getName()+tickStr(tick)+“+”文本);
}
公共同步静态无效警告(类类型、字符串文本、整数勾号)
{
如果(被监视)
init();
_logger.warning(type.getName()+tickStr(tick)+“+”文本);
}
公共同步静态无效信息(类类型、字符串文本、整数勾号)
{
如果(被监视)
init();
_logger.info(type.getName()+tickStr(tick)+“+”文本);
}
公共同步静态void配置(类类型、字符串文本、整数勾号)
{
如果(被监视)
init();
_logger.config(type.getName()+tickStr(tick)+“+”文本);
}
公共同步静态void fine(类类型、字符串文本、整型记号)
{
如果(被监视)
init();
_logger.fine(type.getName()+tickStr(tick)+“+”文本);
}
公共同步静态void finer(类类型、字符串文本、整型记号)
{
如果(被监视)
init();
_logger.finer(type.getName()+tickStr(tick)+“+”文本);
}
公共同步静态无效(类类型、字符串文本、整型标记)
{
如果(被监视)
init();
_logger.finest(type.getName()+tickStr(tick)+“+”文本);
}
}
我的问题是,没有任何东西被打印到控制台上..我主要是尝试使用处理程序和关卡。。。
当然,正常的系统.out.println
工作正常。
我创建了这个类作为我的整个应用程序的多线程应用程序记录器。
有什么建议吗?
谢谢。在
概述
中
if (_isInited)
init();
应该是
if (!_isInited)
init();
否则,当isInited
为false
时,它不会调用init()。或者,您可以使用静态初始化块,如
static {
init(); // <-- will run once.
}
静态{
init()//