HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 26.09.2015, 00:00
ancient
Новичок
Регистрация: 25.04.2010
Сообщений: 0
С нами: 8445907

Репутация: 0
По умолчанию

Теперь в pom.xml добавим зависимость:

Код:


Код:
    log4j
    log4j
    1.2.17

Это все зависимости, которые надо было подключить.
Давайте создадим класс в котором была бы бизнес-логика, назовем его OrderLogic:

Код:


Код:
package com.devcolibri.logpack;
public class OrderLogic {
    public void doOrder(){
        // какае-то логика
        System.out.println("Запускается");
        addToCart();
    }
    private void addToCart() {
        // добавление товара в корзину
        System.out.println("Запущен!");
    }
}
Хочу обратить ваше внимание на то, что логика данного проекта не важна, так как мы рассматриваем логирование, для этого я и подготовил примитивную логику класса OrderLogic.

И теперь создаем Main класс:

Код:


Код:
package com.devcolibri.logpack;
public class Main {
    private static OrderLogic logic;
    public static void main(String[] args) {
        logic = new OrderLogic();
        logic.doOrder();
    }
}
В результате выполнения данного кода, мы получим следующее:

Код:


Код:
Запускается
Запущен!
Чтобы гибко управлять логированием стоит создать в resources/файл log4j.properties:

Теперь в этот файл добавим пару строк конфигураций:

Код:


Код:
# Уровень логирования
log4j.rootLogger=INFO, file
# Апендер для работы с файлами
log4j.appender.file=org.apache.log4j.RollingFileAppender
# Путь где будет создаваться лог файл
log4j.appender.file.File=C:\\TMP\\log_file.log
# Указываем максимальный размер файла с логами
log4j.appender.file.MaxFileSize=1MB
# Конфигурируем шаблон вывода логов в файл
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
Теперь давайте более детальней разберем строку формирования шаблона:

Код:


Код:
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
Значения:

%d{yyyy-MM-dd HH:mm:ss} — выводит дату в формате 2015-09-15 22:55:57

%-5p
— выводит уровень лога (ERROR, DEBUG, INFO …), цифра 5 означает что всегда использовать 5 символов остальное дополнится пробелами, а минус (-), то что позиционирование по левой стороне.

%c{1} — категория, в скобках указывается сколько уровней выдавать. Так как у нас 1 уровень то писаться будет только имя класса.

%L — номер строки в которой произошёл вызов записи в лог.

%m — сообщение, которое передали в лог.

%n — переход на новую строку.

Теперь в класс OrderLogic добавим логирование и посмотрим на результат:

Код:


Код:
package com.devcolibri.logpack;
import org.apache.log4j.Logger;
public class OrderLogic {
    // Инициализация логера
    private static final Logger log = Logger.getLogger(OrderLogic.class);
    public void doOrder(){
        // какае-то логика
        System.out.println("Заказ оформлен!");
        // логируем инфо
        log.info("Это информационное сообщение!");
        addToCart();
    }
    private void addToCart() {
        // добавление товара в корзину
        System.out.println("Товар добавлен в корзину");
        // логируем ошибку
        log.error("Это сообщение ошибки");
    }
}
Теперь давайте запустим код опять. Мы получим тот же результат, вот только уже по пути C://TMP/ будет лежать файлlog_file.logсо следующим содержимым:

Код:


Код:
2015-09-15 23:00:57 INFO  OrderLogic:12 - Это информационное сообщение!
2015-09-15 23:00:57 ERROR OrderLogic:19 - Это сообщение ошибки
 
Ответить с цитированием

  #2  
Старый 26.09.2015, 00:05
Mizuwokiru
Постоянный
Регистрация: 07.04.2015
Сообщений: 960
С нами: 5842272

Репутация: 1039


По умолчанию

Уже log4j2 давным-давно есть. И конфигурация большого кол-ва логгеров хранится в xml. В инете статей, как прикрутить первый log4j уйма.
 
Ответить с цитированием

  #3  
Старый 26.09.2015, 00:06
Influence
Постоянный
Регистрация: 14.06.2015
Сообщений: 910
С нами: 5744218

Репутация: 1488


По умолчанию

хватит чужое копипастить и займись уже своей сборкой, а не херней
 
Ответить с цитированием

  #4  
Старый 26.09.2015, 00:19
mAnGoL
Новичок
Регистрация: 21.01.2010
Сообщений: 0
С нами: 8581120

Репутация: 0
По умолчанию

Что за хрень? log4j везде натыкан. Написал бы свою стать по logback, log4j2
 
Ответить с цитированием

  #5  
Старый 26.09.2015, 00:32
kick
Флудер
Регистрация: 20.01.2015
Сообщений: 7,201
С нами: 5952720

Репутация: 6527


По умолчанию

Наверное надо взять кинуть доку с апача и всё
 
Ответить с цитированием

  #6  
Старый 26.09.2015, 01:11
Mizuwokiru
Постоянный
Регистрация: 07.04.2015
Сообщений: 960
С нами: 5842272

Репутация: 1039


По умолчанию

Цитата:
Сообщение от Mangol  

Что за хрень? log4j везде натыкан. Написал бы свою стать по logback, log4j2
В логбэке вроде аналогичная конфигурация с log4j.
 
Ответить с цитированием

  #7  
Старый 26.09.2015, 01:13
mAnGoL
Новичок
Регистрация: 21.01.2010
Сообщений: 0
С нами: 8581120

Репутация: 0
По умолчанию

Цитата:
Сообщение от Mizuwokiru  

В логбэке вроде аналогичная конфигурация с log4j.
log4j2 лучше)
 
Ответить с цитированием

  #8  
Старый 26.09.2015, 01:26
Mizuwokiru
Постоянный
Регистрация: 07.04.2015
Сообщений: 960
С нами: 5842272

Репутация: 1039


По умолчанию

Цитата:
Сообщение от Mangol  

log4j2 лучше)
Ну никто же не спорит.

Кстати, раз уж пошел разговор о логгерах, в чем плюс slf4j по сравнению с log4j? Не могу понять, зачем морочат голову и юзают его (ну кроме тех случаев, когда исходник определенной нужной библиотеки не доступен и в нем используется логгирование slf4j как какое-то абстрактное логгирование).
 
Ответить с цитированием

  #9  
Старый 26.09.2015, 02:06
WoWan-SM
Участник форума
Регистрация: 15.09.2015
Сообщений: 119
С нами: 5610336

Репутация: 766
По умолчанию

Цитата:
Сообщение от Mizuwokiru  

Ну никто же не спорит.
Кстати, раз уж пошел разговор о логгерах, в чем плюс slf4j по сравнению с log4j? Не могу понять, зачем морочат голову и юзают его (ну кроме тех случаев, когда исходник определенной нужной библиотеки не доступен и в нем используется логгирование slf4j как какое-то абстрактное логгирование).
Java logging. Hello World
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.

×

Создать сделку

Продавец: ник или ID

Название сделки:

Сумма USDT:

Срок сделки, дней:

Кто платит комиссию:

Условия сделки:

После создания сделки средства будут зарезервированы в холде до завершения сделки.

×

Мои сделки

Загрузка...
×

Сделка


Загрузка чата...