[英]Java Logger doesn't log to Console
我已經創建了以下課程。
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);
}
}
我的問題是,沒有任何內容打印到控制台上。.ive主要嘗試使用處理程序和關卡...當然,正常的System.out.println
可以正常工作。 我已經將該類創建為整個類的多線程應用程序記錄器。 有什么建議么? 謝謝。
general
,這
if (_isInited)
init();
應該
if (!_isInited)
init();
否則,當isInited
為false
時,它將不會調用init()
。 或者,您可以使用static
初始化塊,例如
static {
init(); // <-- will run once.
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.