podstawie Thorbjørn Ravn Andersens sugestią pisałem jakiś kod, który sprawia, że praca ta
dodać następujące wcześnie główne metody i jest obecnie możliwe, aby ustawić poziom dziennika z wiersza Comand. Zostały one przetestowane w moim projekcie, ale jestem nowy w log4j i mogłem popełnić jakiś błąd. Jeśli tak, popraw mnie.
Logger.getRootLogger().setLevel(Level.WARN);
HashMap<String,Level> logLevels=new HashMap<String,Level>();
logLevels.put("ALL",Level.ALL);
logLevels.put("TRACE",Level.TRACE);
logLevels.put("DEBUG",Level.DEBUG);
logLevels.put("INFO",Level.INFO);
logLevels.put("WARN",Level.WARN);
logLevels.put("ERROR",Level.ERROR);
logLevels.put("FATAL",Level.FATAL);
logLevels.put("OFF",Level.OFF);
for(String name:System.getProperties().stringPropertyNames()){
String logger="log4j.logger.";
if(name.startsWith(logger)){
String loggerName=name.substring(logger.length());
String loggerValue=System.getProperty(name);
if(logLevels.containsKey(loggerValue))
Logger.getLogger(loggerName).setLevel(logLevels.get(loggerValue));
else
Logger.getRootLogger().warn("unknown log4j logg level on comand line: "+loggerValue);
}
}
Funkcja FILE_PATH jest faktycznie przeszukiwana w zmiennej CLASSPATH, w tym w plikach jar. –
Musisz umieścić "file:" przed ścieżką, jeśli jest to plik na dysku. Innymi słowy ... -Dlog4j.configuration = file: http://stackoverflow.com/questions/778933/log4j-configuration-via-jvm-arguments –
crowmagnumb
Działa to tak jak w reklamie; jednak próbuję przesłonić ustawienie pliku właściwości w słoiku, a drugi wydaje się ustawić po. Jakakolwiek rada? –