Logging intro

В яве есть несколько подходов к логированию. Так сложилось исторически.
За деталями - сюда:

План:
1) Концепция, или зачем оно нам нужно.
2) Стандартное решение с коробки.
3) log4j
4) slf4j

1) // TBD:

2)

Я для себя выделил 3 способа работы с стандартным логером(которые можно смешивать, переопределяя свойства и т.д. ).
 * полная реализация на стороне явы 
    public class Runner {
 
    private static Logger log = Logger.getLogger(Runner.class.getName());
 
    static{
        try {
            log.addHandler(new FileHandler("info.log"));
            //log.setLevel(Level.ALL);
        } catch (SecurityException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

больше здесь:

Простая и быстрая инициализация:
org.apache.log4j.BasicConfigurator.configure(new ConsoleAppender(new PatternLayout("%5p [%t] (%F:%L) - %m%n")));
или даже так: 
org.apache.log4j.BasicConfigurator.configure();

 * инициализация в яве из конфиг файла:
static{
         try {
            LogManager.getLogManager().readConfiguration(
                new FileInputStream(
                        new File("F://home//project//my.logging.properties")
                )
            );
            System.out.println(LogManager.getLogManager().getProperty("java.util.logging.FileHandler.directory"));
 
        } catch (SecurityException e2) {
            e2.printStackTrace();
        } catch (FileNotFoundException e2) {
            e2.printStackTrace();
        } catch (IOException e2) {
            e2.printStackTrace();
        }
    }
 
    private static Logger log = Logger.getLogger(AnotherRunner.class.getName());


 * инициализация на уровне виртуальной машины:
java -Djava.util.logging.config.file=my.logging.properties

И собственно вот файл, который использовался в 2 и 3 варианте:
#Console handler
handlers=java.util.logging.FileHandler, java.util.logging.ConsoleHandler
.level=ALL
 
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
 
#java.util.logging.FileHandler.level = ALL
#java.util.logging.FileHandler.directory = F://home//projects//jcources//StandartLogerGame
java.util.logging.FileHandler.directory =./
java.util.logging.FileHandler.prefix = mylogs
java.util.logging.FileHandler.pattern = application_log.txt
java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter
java.util.logging.FileHandler.bufferSize = -1

Продолжение.
http://stackoverflow.com/a/11033932/449553

http://javapapers.com/log4j/log4j-levels/

Log4J Levels

TRACE LevelDEBUG LevelINFO LevelWARN LevelERROR LevelFATAL Level
TRACE LevelYYYYYY
DEBUG LevelNYYYYY
INFO LevelNNYYYY
WARN LevelNNNYYY
ERROR LevelNNNNYY
FATAL LevelNNNNNY
ALL LevelYYYYYY
OFF LevelNNNNNN



Comments