Je crée un enregistreur en Java en exécutant le code suivant:Exploitation forestière en 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");
}
}
Si j'utilise cet enregistreur, il écrit non seulement System.err, mais aussi dans le fichier. En fin de compte, je veux configurer l'enregistreur pour lui permettre d'écrire à: »
- deux System.err et le fichier
- Ni System.err et le fichier
- Juste System.err
- Tout fichier
Je sais que l'appel logger.setLevel(Level.OFF)
va désactiver toute la journalisation, mais je ne suis pas sûr de savoir comment le faire pour la liste ci-dessus? Est-ce fait à travers la classe Level? Toute idée ou suggestion serait grandement appréciée.
EDIT: Merci pour les réponses. Je l'ai résolu avec ce code:
/**
* 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");
}
}
Merci pour l'aide
Merci, votre réponse a été tout aussi utile. – user489041