我通過執行以下代碼創建Java中的記錄:記錄在Java中
private static final String logFile = "." + File.separator + "Log Files" + File.separator + "Log_" + Long.toString(System.currentTimeMillis());
private static Logger logger = Logger.getLogger("JCS_Logger");
static
{
try
{
logger.addHandler(new FileHandler(logFile));
}
catch (Exception e)
{
System.err.println("Could not return a static logger");
}
}
如果我用這個記錄,將其寫入不僅System.err的,而且該文件。最後,我要配置的記錄器,以允許它寫:」
- 兩個System.err的和文件
- 無論System.err的和文件
- 只是System.err的
- 不僅僅是文件
我知道調用logger.setLevel(Level.OFF)
會關閉所有日誌記錄,但我不確定如何爲上面的列表執行此操作。它是通過Level類完成的嗎?任何想法或建議將不勝感激。編輯: 感謝您的回覆。我使用此代碼解決了這個問題:
/**
* If debug should be turned on
*/
static boolean debug = true;
/**
* If writing debug to file
*/
static boolean writeLogToFile = false;
/**
* If writing debug to System.err
*/
static boolean writeLogToStdErr = true;
/**
* Location for the temp file
*/
private static final String logFile = "." + File.separator + "Log Files" + File.separator + "Log_" + Long.toString(System.currentTimeMillis());
/**
* Instance of the logger
*/
private static Logger logger = Logger.getLogger("JCS_Logger");
/**
* Handler for System.err
*/
private static Handler consoleHandler;
/**
* Handler for the log file
*/
private static Handler fileHandler;
static
{
try
{ //if not debuggin at all
if(debug == false)
{
logger.setLevel(Level.OFF);
}
//if not writing to the file
if(writeLogToFile == true)
{
fileHandler = new FileHandler(BCApp.getLogFileHandlerPath());
logger.addHandler(fileHandler);
}
//if not writing to System.err
if(writeLogToStdErr == false)
{
consoleHandler = logger.getParent().getHandlers()[0];
logger.getParent().removeHandler(consoleHandler);
}
}
catch (Exception e)
{
System.err.println("Could not return a static logger");
}
}
感謝您的幫助
謝謝,你的答案同樣有幫助。 – user489041 2010-12-08 22:17:10