Skip to content

Instantly share code, notes, and snippets.

@maxlapshin
Created November 26, 2013 12:22
Show Gist options
  • Save maxlapshin/7657485 to your computer and use it in GitHub Desktop.
Save maxlapshin/7657485 to your computer and use it in GitHub Desktop.
How we configure lager for logging
setup_lager_logging() ->
application:load(lager),
ConsoleFormat = [time, " ", pid, {pid, [" "], ""},
{module, [module, ":", line, " "], ""},
message, "\n"
],
FileFormat = [date, " "] ++ ConsoleFormat,
LogDir = os:getenv("LOGDIR"),
{FileLogger, CrashLogger} = case LogDir of
false ->
{[], undefined};
_ ->
{[
{lager_file_backend, [{file,LogDir++"/flussonic.log"},{level,info},{size,2097152},{date,"$D04"}, {count,40},
{formatter,lager_default_formatter},{formatter_config,FileFormat}]}
], LogDir++"/crash.log"}
end,
application:set_env(lager,handlers,[
{lager_console_backend,[info,{lager_default_formatter, ConsoleFormat}]}
] ++ FileLogger),
application:set_env(lager,error_logger_redirect,false),
application:set_env(lager,crash_log,CrashLogger),
application:set_env(lager,crash_log_msg_size,16384),
application:set_env(lager,error_logger_hwm,200),
application:set_env(lager,crash_log_size,1048576),
application:set_env(lager,crash_log_date,"$D04"),
application:set_env(lager,crash_log_count,5),
if
is_list(LogDir) -> application:set_env(lager,log_dir, LogDir);
LogDir == false -> ok
end,
[error_logger:delete_report_handler(X) || X <- gen_event:which_handlers(error_logger)],
{ok, HighWaterMark} = application:get_env(lager, error_logger_hwm),
lager:start(),
supervisor:start_child(lager_handler_watcher_sup, [error_logger, error_logger_flu, [HighWaterMark]]),
lager:notice("Flussonic version ~s is booting", [flu:version()]),
ok.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment