Lager(与在啤酒中一样)是 Erlang 的日志框架,其目的是提供更传统的方式在 Erlang 应用程序中执行日志记录,可以很好地与传统的 Unix 日志工具(比如 logrotate 和 syslog)一起使用。
Github 地址:https://github.com/erlang-lager/lager。
xxxxxxxxxx
$ rebar3 new lib test_lager
$ cd test_lager/
xxxxxxxxxx
.
├── LICENSE
├── README.md
├── app.config
├── rebar.config
└── src
├── test_lager.app.src
└── test_lager.erl
1 directory, 5 files
app.config:
xxxxxxxxxx
[{lager, [
{log_root, "/tmp/lager"},
{handlers, [
{lager_console_backend, [{level, info}]},
{lager_file_backend, [{file, "error.log"}, {level, error}]},
{lager_file_backend, [{file, "console.log"}, {level, info}]}
]}
]}].
rebar.config:
xxxxxxxxxx
{erl_opts, [debug_info,
{parse_transform, lager_transform},
{lager_extra_sinks, [audit]}
]}.
{
deps, [
{lager, {git, "https://github.com/erlang-lager/lager", {tag, "3.9.2"}}}
]
}.
src/test_lager.app.src:
xxxxxxxxxx
{application, test_lager,
[{description, "An OTP library"},
{vsn, "0.1.0"},
{registered, []},
{applications,
[kernel,
stdlib,
lager
]},
{env,[]},
{modules, []},
{licenses, ["Apache-2.0"]},
{links, []}
]}.
src/test_lager.erl:
x
-module(test_lager).
-export([ , , ]).
start() ->
lager:start().
log_error(Message) ->
lager:error(Message).
log_info(Message) ->
lager:info(Message).
xxxxxxxxxx
$ rebar3 compile
x
$ erl -pa _build/default/lib/*/ebin -config app.config
1> test_lager:start().
2> test_lager:log_info("info").
3> test_lager:log_error("error").
查看文件 /tmp/lager/console.log
、/tmp/lager/error.log
的内容。