логи в приложении на erlang

343 views
Skip to first unread message

Slav Pankratov

unread,
Aug 11, 2011, 3:12:39 PM8/11/11
to erlang-...@googlegroups.com
Привет!

У меня есть application,
хочется добавить туда в каком-то виде логирование.

Я думал про каталог с текстовыми файликами (чтобы было удобно их просматривать).

Существуют ли какие-то грамотные логгеры чтобы не переизобретать велосипед?
На сайте mongodb есть конечно пример как использовать для этих целей монго, 
но мне кажется текстовые файлики лучше подойдут для таких задач если логи будут больших размеров!

thanks,
Slav

Serge Matveenko

unread,
Aug 11, 2011, 3:16:57 PM8/11/11
to erlang-...@googlegroups.com
2011/8/11 Slav Pankratov <gno...@gmail.com>:

> Существуют ли какие-то грамотные логгеры чтобы не переизобретать велосипед?

http://www.erlang.org/doc/man/error_logger.html

и там же советуют совмещать с http://www.erlang.org/doc/man/log_mf_h.html


--
Serge Matveenko
se...@matveenko.ru
http://www.ohloh.net/accounts/lig
http://ru.linkedin.com/in/sergematveenko

Peter Lemenkov

unread,
Aug 11, 2011, 3:19:43 PM8/11/11
to erlang-...@googlegroups.com
11 августа 2011 г. 23:12 пользователь Slav Pankratov
<gno...@gmail.com> написал:

> Привет!
>
> У меня есть application,
> хочется добавить туда в каком-то виде логирование.
> Я думал про каталог с текстовыми файликами (чтобы было удобно их
> просматривать).
> Существуют ли какие-то грамотные логгеры чтобы не переизобретать велосипед?

Пиши в syslog (я использую syslog-ng или rsyslog). Написана просто
туча софта, чтоб это анализировать. Текстовые файлики, это как-бы даже
и не смешно. Можно, конечно, еще в колонко-ориентированную базу
складывать, но syslog-демонов учили правильно писать логи годами,
так-что там все совсем хорошо.

А вообще, правильная идея в том, чтоб использовать error_logger, а к
нему - любой понравившийся бэкенд, хотя эстеты жалуются, что это
тормозит.

--
With best regards, Peter Lemenkov.

Alexander Dergachev

unread,
Aug 11, 2011, 3:23:51 PM8/11/11
to erlang-...@googlegroups.com
воспользуюсь случаем :)


есть бэкэкнд для syslog (ну а если хочется файликов, то есть disk_log бэкэнд), а при надобности можно будет сменить бэкэнд без изменения твоего кода ;)

скоро будет документация и на русском, плюс разрабатываем это мы, с поддержкой проблем не будет, и вопросы всегда нам можно задать.

2011/8/11 Peter Lemenkov <leme...@gmail.com>

--
Страница рассылки: http://groups.google.com/group/erlang-russian
 Jabber-конференция: erl...@conference.jabber.ru
 Новости: http://erlanger.ru
Написать письмо: erlang-...@googlegroups.com
Отписаться: erlang-russia...@googlegroups.com



--
With Best Regards,
Alexander Dergachev

Daniil Churikov

unread,
Aug 12, 2011, 1:28:27 AM8/12/11
to Erlang в России

Max Lapshin

unread,
Aug 12, 2011, 1:30:48 AM8/12/11
to erlang-...@googlegroups.com
2011/8/12 Daniil Churikov <ddo...@gmail.com>:
> можно глянуть http://blog.basho.com/2011/07/20/Introducing-Lager-A-New-Logging-Framework-for-ErlangOTP/
>

alogger сделанный за выходные на порядок более зрелый, чем lager.

Alexey Larin

unread,
Sep 10, 2011, 2:11:34 PM9/10/11
to Erlang в России
Александр, есть ли что-то по документации alogger.
Хотел бы начать использовать данное решение в своем прилжении.
Пока не сильно получается.
Где можно было посмотреть на пример использования alogger в третьем
приложении (с конфигами, вариантами запуска erl и т.д.)?

Спасибо.
Алексей.

On 11 авг, 23:23, Alexander Dergachev <cy6erbr...@gmail.com> wrote:
> воспользуюсь случаем :)
>
> посмотри наhttps://github.com/siberian-fast-food/alogger


>
> есть бэкэкнд для syslog (ну а если хочется файликов, то есть disk_log
> бэкэнд), а при надобности можно будет сменить бэкэнд без изменения твоего
> кода ;)
>
> скоро будет документация и на русском, плюс разрабатываем это мы, с
> поддержкой проблем не будет, и вопросы всегда нам можно задать.
>

> 2011/8/11 Peter Lemenkov <lemen...@gmail.com>


>
>
>
>
>
>
>
>
>
> > 11 августа 2011 г. 23:12 пользователь Slav Pankratov

> > <gnob...@gmail.com> написал:

Igor Karymov

unread,
Sep 11, 2011, 4:14:04 AM9/11/11
to Erlang в России
Приветствую.
Накидал пример, с использованием alog в составе релиза:
https://github.com/IgorKarymov/alog_example

make
make run

конфиг в etc/app.config

здесь включены бэкенды alog_tty, alog_disk_log, alog_syslog.

управление в рантайме через модуль alog_control

кого-нибудь из авторов обычно можно найти в:
erl...@conference.jabber.ru

JLarky

unread,
Nov 10, 2011, 7:19:14 PM11/10/11
to erlang-...@googlegroups.com
Простите люди добрые за некропост, но тем не менее :)

Вот читаю я из описания про lagger

> Lager keeps track of which backends are consuming which levels and will very efficiently discard messages that would not be logged anywhere (they aren't even sent to the gen_event). This means that if you have no backends consuming debug messages, you can log a million debug messages in less than half a second; they're effectively free.

и возникает вопрос, а будет ли себя так же хорошо вести alogger? Тем более, что в рассылке должны и авторы обитать, кто если не они знают насколько произвотельный у них продукт получился :)

Igor Karymov

unread,
Nov 11, 2011, 1:29:11 AM11/11/11
to Erlang в России
Да будет. Используется техника parse_transform,- вызов логгера с
отключенным приоритетом эквивалентно
чему-то вроде:
log(.....) -> ok.

JLarky

unread,
Nov 11, 2011, 5:51:50 AM11/11/11
to erlang-...@googlegroups.com
Круто!
Ну а к слову о parse_transform у кого-нибудь есть в планах подсунуть в вызов логера ещё и название модуля, номер строчки, pid, как это делается у lager? :)

Artem Golovinsky

unread,
Nov 11, 2011, 5:58:27 AM11/11/11
to erlang-...@googlegroups.com
Вот как можно вызвать alog:log(Format, Args, Level, Tags, Module, Line, Pid).

Там и номер и строчки и прочее. А если пользовать через макросы, то имя модуля, номер строки и Pid процесса вызвавшего вызвавшего логгер подставляются автоматом.

Посмотри - https://github.com/siberian-fast-food/alogger/blob/master/include/alog.hrl
11 ноября 2011 г. 13:51 пользователь JLarky <jla...@gmail.com> написал:



--
Best regards,
Artem Golovinsky

Artem Golovinsky

unread,
Nov 11, 2011, 5:59:10 AM11/11/11
to erlang-...@googlegroups.com
Собственно через макросы и нужно пользоваться.

11 ноября 2011 г. 13:58 пользователь Artem Golovinsky <artemgo...@gmail.com> написал:

JLarky

unread,
Nov 11, 2011, 6:45:09 AM11/11/11
to erlang-...@googlegroups.com
я так понимаю, что всё-таки ты имел в виду
?LOGMOD:?LOGFUN(Format, Args, Level, Tags, ?MODULE, ?LINE, self())).
короче если использовать макросы то да, все эти штуки сам подставляются :)
?EMERGENCY("Error accured with user: ~p", ["Vasya"], user), делает что-то вроде этого
2011-11-11 06:30:17:351861 log:24:emergency [<0.16039.0>]->[user]: Error accured with user: "Vasya"
где log:24 и есть модуль:строчка, а <0.16039.0> это pid

Artem Golovinsky

unread,
Nov 11, 2011, 6:47:28 AM11/11/11
to erlang-...@googlegroups.com
Именно)..возможно я просто криво изложил свои мысли :-)

11 ноября 2011 г. 14:45 пользователь JLarky <jla...@gmail.com> написал:
Reply all
Reply to author
Forward
0 new messages