powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Логер
25 сообщений из 35, страница 1 из 2
Логер
    #38783054
Елдос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программисты!
Какой логер лучше использовать, не используя БД.
если есть такой вариант как переключение уровня логирования, когда надо он все голит, а когда переключаю то только ошибки,
записей логов будет очень много тысячи и тысячи строк, хотелось бы в БД но отдельного сервера не дадут под него, а боевой для этого использовать опасно,
буду благодарен за любую помощь.
...
Рейтинг: 0 / 0
Логер
    #38783059
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕлдосПрограммисты!
Какой логер лучше использовать, не используя БД.
если есть такой вариант как переключение уровня логирования, когда надо он все голит, а когда переключаю то только ошибки,
записей логов будет очень много тысячи и тысячи строк, хотелось бы в БД но отдельного сервера не дадут под него, а боевой для этого использовать опасно,
буду благодарен за любую помощь.
Да, пофигу вам какой логгер использовать.
Рекомендую вот это прочитать
http://habrahabr.ru/post/113145/
...
Рейтинг: 0 / 0
Логер
    #38783637
Елдос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczЕлдосПрограммисты!
Какой логер лучше использовать, не используя БД.
если есть такой вариант как переключение уровня логирования, когда надо он все голит, а когда переключаю то только ошибки,
записей логов будет очень много тысячи и тысячи строк, хотелось бы в БД но отдельного сервера не дадут под него, а боевой для этого использовать опасно,
буду благодарен за любую помощь.
Да, пофигу вам какой логгер использовать.
Рекомендую вот это прочитать
http://habrahabr.ru/post/113145/

Я надумал выбрать slf4j,
он работает, выводит в консоль,
но мне бы хотелось его настроить чтобы он делал записи в файл, и менять уровень логирования, не подскажите где находится файл конфигурации его.
...
Рейтинг: 0 / 0
Логер
    #38783641
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Елдос,

Я вам статью уже на русском языке предложил. А вы и ту не осилили. slf4j это не логгер. Это обертка надо логгером. В статье об этом сказано. Обертки нужны чаще всего в библиотеках. Потому что проект может использовать какой-то определенный логгер. И библиотеке надо уметь под него подстраитваться.
...
Рейтинг: 0 / 0
Логер
    #38783872
Елдос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczЕлдос,

Я вам статью уже на русском языке предложил. А вы и ту не осилили. slf4j это не логгер. Это обертка надо логгером. В статье об этом сказано. Обертки нужны чаще всего в библиотеках. Потому что проект может использовать какой-то определенный логгер. И библиотеке надо уметь под него подстраитваться.
да,
читаю быстро, поверхностно, наверное поэтому и не понял.
спасибо
...
Рейтинг: 0 / 0
Логер
    #38783893
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"25 профессий Маши Филипенко"Маша наклеила девяносто марок, а профессор - только десять. Но зато - все правильно.
...
Рейтинг: 0 / 0
Логер
    #38783937
scf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почему еще никто не написал, что log4j2 вышел?
В настоящее время самым технологичным является именно он.
http://logging.apache.org/log4j/2.x/
...
Рейтинг: 0 / 0
Логер
    #38783946
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
scfПочему еще никто не написал, что log4j2 вышел?

Подкинули дровишек в Java logging hell?
...
Рейтинг: 0 / 0
Логер
    #38784322
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
scfПочему еще никто не написал, что log4j2 вышел?Зачем?
...
Рейтинг: 0 / 0
Логер
    #38784840
Елдос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczscfПочему еще никто не написал, что log4j2 вышел?

Подкинули дровишек в Java logging hell?

Можно спросить, вот простой логер, если еще добавить по уровням логирования, чем еще лучше будет логер log4j.
что можно еще добавить.


Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
    public static String logr(String pathlog, String sSessionID, String sPage, String sPayerIP,String sActionType, String sNotes, String sLine){
        String reg = "[3456][0-9]{14,15}";
        Pattern p = Pattern.compile(reg);

        if (pathlog.compareToIgnoreCase("")==0) sSessionID = "/var/backup/";
        if (sSessionID.compareToIgnoreCase("")==0) sSessionID = "0";
        if (sPage.compareToIgnoreCase("")==0) sPage = "-";
        if (sPayerIP.compareToIgnoreCase("")==0) sPayerIP = "-";
        if(sActionType.compareToIgnoreCase("")==0) sActionType = "undef";
        if(sNotes.compareToIgnoreCase("")==0) sNotes = "-";
        if(sLine.compareToIgnoreCase("")==0) sLine = "-";
        if(sNotes.length() > 8000) sNotes.substring(0,7998);
        GregorianCalendar date=new GregorianCalendar();
        date.setTimeZone(TimeZone.getTimeZone("GMT+6"));
        String tActionTime=date.get(Calendar.YEAR)+"-"+
                insSim(2,"0",((date.get(Calendar.MONTH)+1)+""))+"-"+
                insSim(2,"0",(date.get(Calendar.DAY_OF_MONTH)+""))+" "+
                insSim(2,"0",(date.get(Calendar.HOUR_OF_DAY)+""))+":"+
                insSim(2,"0",(date.get(Calendar.MINUTE)+""))+":"+
                insSim(2,"0",(date.get(Calendar.SECOND)+""));
        if(p.matcher(sNotes).find()){
            sNotes=p.matcher(sNotes).replaceAll("--Del card number--");
        }
        try{
            String strSQL = tActionTime +" " + sPage + " ("  + sLine + ") " + sPayerIP  +
                    " "+ sActionType + ": " + sNotes  + " \n";

            RandomAccessFile fw =new RandomAccessFile (pathlog+"/"+sSessionID+".log", "rw");
            byte [] data = strSQL.getBytes();
            fw.seek(fw.length());
            fw.write(data);
            fw.close();

            return "1";
        }catch(Exception e) {
            return "5-"+e;
        }
    }
...
Рейтинг: 0 / 0
Логер
    #38784864
scf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Про logging hell
Slf4j?

2. Про "Зачем?"
Уважаемый, ну зачем вы существуете? Чтобы писать такие комментарии?

3. Про наивную реализацию логгера
- нет уровней логгирования, множественных логгеров, возможности писать разные строки лога в разные файлы
- неэффективная реализация - файл переоткрывается для каждой строчки лога, нет асинхронной записи в лог
- нет роллинга логов - т.е.разбиение лога на отдельные файлы по дате/времени/размеру
- делать отдельные файлы на разных юзеров - очень много файлов получится, сложнее искать/скармливать анализаторам логов типа Splunk/бэкапить логи.

Могу еще по коду пройтись, если надо - там есть баги, неэффективные вещи и просто незнание core java
...
Рейтинг: 0 / 0
Логер
    #38784875
Елдос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
scf1. Про logging hell
Slf4j?

2. Про "Зачем?"
Уважаемый, ну зачем вы существуете? Чтобы писать такие комментарии?

3. Про наивную реализацию логгера
- нет уровней логгирования, множественных логгеров, возможности писать разные строки лога в разные файлы
- неэффективная реализация - файл переоткрывается для каждой строчки лога, нет асинхронной записи в лог
- нет роллинга логов - т.е.разбиение лога на отдельные файлы по дате/времени/размеру
- делать отдельные файлы на разных юзеров - очень много файлов получится, сложнее искать/скармливать анализаторам логов типа Splunk/бэкапить логи.

Могу еще по коду пройтись, если надо - там есть баги, неэффективные вещи и просто незнание core java
все понял, буду использовать log4j,
большое спасибо за прояснение.
...
Рейтинг: 0 / 0
Логер
    #38784897
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕлдосМожно спросить, вот простой логер, если еще добавить по уровням логирования, чем еще лучше будет логер log4j.
что можно еще добавить.
Да, всем лучше. У вас не читаемый, не поддерживаемый, не конфигурируемый тормозной код с багами.
Открываете список "фич" любого логгера и там видите всё чем он лучше вашего.
...
Рейтинг: 0 / 0
Логер
    #38784911
Елдос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczЕлдосМожно спросить, вот простой логер, если еще добавить по уровням логирования, чем еще лучше будет логер log4j.
что можно еще добавить.
Да, всем лучше. У вас не читаемый, не поддерживаемый, не конфигурируемый тормозной код с багами.
Открываете список "фич" любого логгера и там видите всё чем он лучше вашего.
спасибо.
...
Рейтинг: 0 / 0
Логер
    #38786058
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Елдос2. Про "Зачем?"
Уважаемый, ну зачем вы существуете? Чтобы писать такие комментарии?Те, кто хоть как-то следит за используемыми библиотеками, должен быть в курсе и существования проекта и выхода его бета-версий.
...
Рейтинг: 0 / 0
Логер
    #38786138
Йуный джавистЪ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пишите все сообщения в stdout (или в stderr).
Чтобы писать логи в файл, запускайте программу так
Код: sql
1.
java -jar proga.jar > mylog.txt


Чтобы писать в syslog - так
Код: sql
1.
java -jar proga.jar | logger


Используя велосипедные логгеры, вы поощряете их авторов продолжать свое безумное творчество (java logging hell) и увеличиваете количество энтропии в мире.
...
Рейтинг: 0 / 0
Логер
    #38786177
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Йуный джавистЪПишите все сообщения в stdout (или в stderr)Проблема не в том, чтобы (быстро) выдать сообщения на консоль, а в том, чтобы ранжировать их по уровням и избирательно выключать по категориям не меняя ни строчки кода.

P.S. На форматирование и многопоточность отдельных пунктов не заводим.

P.P.S. Перенаправление даже обхихикивать не буду.
...
Рейтинг: 0 / 0
Логер
    #38786670
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczРекомендую вот это прочитать
http://habrahabr.ru/post/113145/

Кстати, давано такой вменяемой статьи по Яве не читал...
Спасибо.
...
Рейтинг: 0 / 0
Логер
    #38787126
Йуный джавистЪ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovЙуный джавистЪПишите все сообщения в stdout (или в stderr)Проблема не в том, чтобы (быстро) выдать сообщения на консоль, а в том, чтобы ранжировать их по уровням и избирательно выключать по категориям не меняя ни строчки кода.
Мы делали возможность включать разные уровни логирования через админку в зависимости от разных условий - например можно было поставить более высокий уровень логирования какому-то отдельному клиенту. В начале обработки запроса мы вычисляли максимальный уровень логирования и клали его в thread-local переменную.
Никакой логгинг фреймворк не может и не должен знать о такой логике - она относится к приложению. Более того, вызывая
Код: java
1.
org.apache.log4j.Logger.getLogger().info(...)


вы теряете возможность впоследствии реализовать какую-то сложную логику логгинга.
Затем, java приложение не должно думать о том, куда заапендить сообщение - это не его responsibility и должно настраиваться админами при деплое. Админы любят, когда приложение использует стандартные системные средства и не любят изучать какие-то самопальные xml-конфиги. В линуксе, например, в самой популярной инит-системе systemd по дефолту считается, что приложение пишет логи в stdout, и systemd собирает эти логи. Для админа это очень удобно - логи со всех приложений оказываются в одном месте.
...
Рейтинг: 0 / 0
Логер
    #38787170
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Йуный джавистЪ,
"Что русскому хорошо, то немцу - смерть" )
Программисты и админы часто любят разные вещи )
...
Рейтинг: 0 / 0
Логер
    #38787250
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Йуный джавистЪПишите все сообщения в stdout (или в stderr).
Чтобы писать логи в файл, запускайте программу так
Код: sql
1.
java -jar proga.jar > mylog.txt


Чтобы писать в syslog - так
Код: sql
1.
java -jar proga.jar | logger


Используя велосипедные логгеры, вы поощряете их авторов продолжать свое безумное творчество (java logging hell) и увеличиваете количество энтропии в мире.
Поток error надо ловить через дескриптор #2.
Код: java
1.
java -jar proga.jar > mylog.txt 2>myerror.log
...
Рейтинг: 0 / 0
Логер
    #38787279
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Йуный джавистЪНикакой логгинг фреймворк не может и не должен знать о такой логике - она относится к приложению. Более того, вызывая
Код: java
1.
org.apache.log4j.Logger.getLogger().info(...)

вы теряете возможность впоследствии реализовать какую-то сложную логику логгинга."Смешались в кучу кони, люди".
Во-первых, пишут:
Код: sql
1.
org.apache.log4j.Logger log = log.apache.log4j.LogManager.getLogger(Имя.class);


Во-вторых, логика протоколирования проектируется вместе с приложением, т.к. в противном случае у вас будет куча:
Код: sql
1.
2.
log.info("сложно собираемая строка");
log.debug("ещё более сложно собираемая строка");

что сильно замусорит основной код.Затем, java приложение не должно думать о том, куда заапендить сообщение - это не его responsibility и должно настраиваться админами при деплое.Что характерно, именно это и обеспечивает log4j.Админы любят, когда приложение использует стандартные системные средства и не любят изучать какие-то самопальные xml-конфиги.То-то, смотрю, все выкинули апач. Несомненно, из-за его xml-подобного конфига.В линуксе, например, в самой популярной инит-системе systemd по дефолту считается, что приложение пишет логи в stdout, и systemd собирает эти логи.А в винде - так не считается. Именно поэтому существует jsvc для nix-ов и procrun - для виндов.Для админа это очень удобно - логи со всех приложений оказываются в одном месте.Это удобно пока всё, что нужно админу - информационные сообщения о запуске-остановке сервиса и предупреждения о нехватке (какого-нибудь) пула.
...
Рейтинг: 0 / 0
Логер
    #38787315
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Идеальная система логирования должна обеспечивать следующие возможности

- не выполнение своего кода, кода заданный уровень сообщения не требуется (в том числе связанные с генерацией строки);
- переключение необходимый уровень сообщений на лету без остановки приложения;
- мультиплицированной раскладку сообщений по разным журналам;
- ротацию журналов с разными правилами для разных сообщений (например info удаляются из файла через два часа, а error держатся месяц, но лучше не только по уровням)
- генерация различных событий по данным журнала (как-то количество обращений к системе в минуту превысило порог)
- запуска различных триггеров по событиям
- легкость в настройке и управлении
- не допускать утечки информации.

Странно только почему ее до сих пор никто не сделал.
...
Рейтинг: 0 / 0
Логер
    #38787369
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей АрсеньевИдеальная система логирования должна обеспечивать следующие возможности

- не выполнение своего кода, кода заданный уровень сообщения не требуется (в том числе связанные с генерацией строки);
- переключение необходимый уровень сообщений на лету без остановки приложения;
- мультиплицированной раскладку сообщений по разным журналам;logback, log4j2. log4j - может, но с ограничениями. - ротацию журналов с разными правилами для разных сообщений (например info удаляются из файла через два часа, а error держатся месяц, но лучше не только по уровням)И как вы представляете "удаление записей" из плоских файлов???
При том, что "дублировать warn и выше в отдельный приёмник" - умеют все. - генерация различных событий по данным журнала (как-то количество обращений к системе в минуту превысило порог)Т.е. включили трассировку и всё выключилось???
Хотя "Last message repeated # times" я видел. Вполне полезная вещь. - запуска различных триггеров по событиям
- легкость в настройке и управленииФильтры/события - у всех есть. - не допускать утечки информации.И как логгеру узнать, что в эту строку программист упихнул пароль открытым текстом???
...
Рейтинг: 0 / 0
Логер
    #38787377
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov,
+1
первые 3 они умеют.
А остальные imho уже дело админских утилит а-ля конвейров Над лог-журналами.
Error отсылать по мылу тоже умеют.
...мониторинг и логирование - разные вещи.
Хватит улучшать логгеры )) LOL
...
Рейтинг: 0 / 0
25 сообщений из 35, страница 1 из 2
Форумы / Java [игнор отключен] [закрыт для гостей] / Логер
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]