Рубрики
Без рубрики

Log4j пример привет, мир

– Log4j пример привет, мир

В этом уроке мы покажем вам, как использовать классический log4j 1.2.x для регистрации сообщения об отладке или ошибке в приложении Java.

1. Каталог проектов

Просмотрите окончательную структуру проекта, стандартный Java-проект в стиле Maven.

2. Получить Log4j

Объявляет следующие зависимости:

	
		log4j
		log4j
		1.2.17
	

Для пользователей, не являющихся Maven, посетите официальную страницу log4j , загрузите jar и вручную поместите его в путь к библиотеке проекта.

3. Для пользователей, не являющихся Maven, посетите ||официальную страницу log4j||, загрузите jar и вручную поместите его в путь к библиотеке проекта.

Создайте файл log4j.properties и поместите его в папку ресурсов. Обратитесь к шагу № 1 выше.

  1. Для автономного приложения Java убедитесь, что файл log4j.properties находится под проектом/классами каталог
  2. Для веб-приложений Java убедитесь, что файл log4j.properties находится под классами WEB-INF/ каталог
# Root logger option
log4j.rootLogger=DEBUG, stdout, file

# Redirect log messages to console
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

# Redirect log messages to a log file, support file rolling.
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=C:\\log4j-application.log
log4j.appender.file.MaxFileSize=5MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

Давай разберем это:

  1. %d{гггг-ММ-дд и формат времени, см. SimpleDateFormat javadoc.
  2. приоритет ведения журнала %-5p, например, ОТЛАДКА или ОШИБКА. -5 является необязательным для красивого формата печати.
  3. %c{1} имя журнала, которое мы задаем с помощью getLogger(), см. руководство по шаблону log4j .
  4. %L номер строки, откуда поступил запрос на ведение журнала.
  5. % m%n сообщение для регистрации и разрыва строки.

Примеры сообщений журнала:

2014-07-02 20:52:39 DEBUG className:200 - This is debug message
2014-07-02 20:52:39 DEBUG className:201 - This is debug message2

4. Демонстрация – Как зарегистрировать сообщение?

Чтобы зарегистрировать сообщение, сначала создайте окончательный статический регистратор и определите имя для регистратора, обычно мы используем полное имя класса пакета.

	final static Logger logger = Logger.getLogger(classname.class);

Затем регистрирует сообщения с различными приоритетами, например, отладка, информация, предупреждение, ошибка и фатальный. Обычно вам просто нужно использовать отладку или ошибку.

	//logs a debug message
	if(logger.isDebugEnabled()){
	    logger.debug("This is debug");
	}
	
	//logs an error message with parameter
	logger.error("This is error : " + parameter);
	
	//logs an exception thrown from somewhere
	logger.error("This is error", exception);

4.1 Пример: Регистратор имеет значение отладка приоритет.


log4j.rootLogger=DEBUG, stdout

#...
package com.mkyong;

import org.apache.log4j.Logger;

public class HelloExample{
	
	final static Logger logger = Logger.getLogger(HelloExample.class);
	
	public static void main(String[] args) {
	
		HelloExample obj = new HelloExample();
		obj.runMe("mkyong");
		
	}
	
	private void runMe(String parameter){
		
		if(logger.isDebugEnabled()){
			logger.debug("This is debug : " + parameter);
		}
		
		if(logger.isInfoEnabled()){
			logger.info("This is info : " + parameter);
		}
		
		logger.warn("This is warn : " + parameter);
		logger.error("This is error : " + parameter);
		logger.fatal("This is fatal : " + parameter);
		
	}
	
}

Выход

2014-07-02 20:52:39 DEBUG HelloExample:19 - This is debug : mkyong
2014-07-02 20:52:39 INFO  HelloExample:23 - This is info : mkyong
2014-07-02 20:52:39 WARN  HelloExample:26 - This is warn : mkyong
2014-07-02 20:52:39 ERROR HelloExample:27 - This is error : mkyong
2014-07-02 20:52:39 FATAL HelloExample:28 - This is fatal : mkyong

4.2 Пример – Регистратор имеет значение ошибка приоритет.


log4j.rootLogger=error, stdout

#...

Запустите пример Hello еще раз, вы получите следующий вывод

2014-07-02 20:56:02 ERROR HelloExample:27 - This is error : mkyong
2014-07-02 20:56:02 FATAL HelloExample:28 - This is fatal : mkyong

Просмотрите класс приоритета log4j.

package org.apache.log4j;

public class Priority {

  public final static int OFF_INT = Integer.MAX_VALUE;
  public final static int FATAL_INT = 50000;
  public final static int ERROR_INT = 40000;
  public final static int WARN_INT  = 30000;
  public final static int INFO_INT  = 20000;
  public final static int DEBUG_INT = 10000;
    //public final static int FINE_INT = DEBUG_INT;
  public final static int ALL_INT = Integer.MIN_VALUE;

Если приоритет определен в log4j.properties , будет зарегистрировано только то же или более приоритетное сообщение.

5. Демонстрация – Как зарегистрировать исключение

Пример, показывающий, как использовать log4j для регистрации исключения.

package com.mkyong;

import org.apache.log4j.Logger;

public class HelloExample2{
	
	final static Logger logger = Logger.getLogger(HelloExample2.class);
	
	public static void main(String[] args) {
	
		HelloExample2 obj = new HelloExample2();
		
		try{
			obj.divide();
		}catch(ArithmeticException ex){
			logger.error("Sorry, something wrong!", ex);
		}
		
		
	}
	
	private void divide(){
		
		int i = 10 /0;

	}
	
}

Выход

2014-07-02 21:03:10 ERROR HelloExample2:16 - Sorry, something wrong!
java.lang.ArithmeticException: / by zero
	at com.mkyong.HelloExample2.divide(HelloExample2.java:24)
	at com.mkyong.HelloExample2.main(HelloExample2.java:14)

Сделано.

Скачать Исходный Код

Рекомендации

  1. официальная страница log4j 1.2
  2. выкройка шаблона log4j
  3. Википедия: log4j
  4. Пример Spring MVC + log4j
  5. log4j.примеры свойств

Оригинал: “https://mkyong.com/logging/log4j-hello-world-example/”