Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
forks
lager
Commits
40b0e2d4
Commit
40b0e2d4
authored
13 years ago
by
Andrew Thompson
Browse files
Options
Download
Email Patches
Plain Diff
Record milliseconds with timestamps, make console less verbose by default
az558
parent
d0338f11
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
src/lager.erl
+4
-4
src/lager.erl
src/lager_console_backend.erl
+12
-5
src/lager_console_backend.erl
src/lager_crash_log.erl
+2
-3
src/lager_crash_log.erl
src/lager_file_backend.erl
+2
-2
src/lager_file_backend.erl
src/lager_transform.erl
+3
-3
src/lager_transform.erl
src/lager_util.erl
+22
-4
src/lager_util.erl
test/lager_test_backend.erl
+1
-1
test/lager_test_backend.erl
with
46 additions
and
22 deletions
+46
-22
src/lager.erl
View file @
40b0e2d4
...
...
@@ -53,7 +53,7 @@ start_ok(App, {error, Reason}) ->
ok
|
{
error
,
lager_not_running
}.
log
(
Level
,
Module
,
Function
,
Line
,
Pid
,
Time
,
Message
)
->
Timestamp
=
lager_util
:
format_time
(
Time
),
Msg
=
[
io_lib
:
format
(
"
[
~p
]
~p
@
~p
:
~p
:
~p
"
,
[
Level
,
Pid
,
Module
,
Msg
=
[
[
"["
,
atom_to_list
(
Level
),
"] "
],
io_lib
:
format
(
"
~p
@
~p
:
~p
:
~p
"
,
[
Pid
,
Module
,
Function
,
Line
]),
string
:
strip
(
lists
:
flatten
(
Message
),
right
,
$\n
)],
safe_notify
(
lager_util
:
level_to_num
(
Level
),
Timestamp
,
Msg
).
...
...
@@ -62,7 +62,7 @@ log(Level, Module, Function, Line, Pid, Time, Message) ->
ok
|
{
error
,
lager_not_running
}.
log
(
Level
,
Module
,
Function
,
Line
,
Pid
,
Time
,
Format
,
Args
)
->
Timestamp
=
lager_util
:
format_time
(
Time
),
Msg
=
[
io_lib
:
format
(
"
[
~p
]
~p
@
~p
:
~p
:
~p
"
,
[
Level
,
Pid
,
Module
,
Msg
=
[
[
"["
,
atom_to_list
(
Level
),
"] "
],
io_lib
:
format
(
"
~p
@
~p
:
~p
:
~p
"
,
[
Pid
,
Module
,
Function
,
Line
]),
string
:
strip
(
lists
:
flatten
(
io_lib
:
format
(
Format
,
Args
)),
right
,
$\n
)],
safe_notify
(
lager_util
:
level_to_num
(
Level
),
Timestamp
,
Msg
).
...
...
@@ -70,14 +70,14 @@ log(Level, Module, Function, Line, Pid, Time, Format, Args) ->
-
spec
log
(
log_level
(),
pid
(),
list
())
->
ok
|
{
error
,
lager_not_running
}.
log
(
Level
,
Pid
,
Message
)
->
Timestamp
=
lager_util
:
format_time
(),
Msg
=
[
io_lib
:
format
(
"[
~p
]
~p
"
,
[
Level
,
Pid
])
,
string
:
strip
(
lists
:
flatten
(
Message
),
right
,
$\n
)],
Msg
=
[
[
"["
,
atom_to_list
(
Level
),
"] "
],
[
pid_to_list
(
Pid
),
" "
]
,
string
:
strip
(
lists
:
flatten
(
Message
),
right
,
$\n
)],
safe_notify
(
lager_util
:
level_to_num
(
Level
),
Timestamp
,
Msg
).
%% @doc Manually log a message into lager without using the parse transform.
-
spec
log
(
log_level
(),
pid
(),
string
(),
list
())
->
ok
|
{
error
,
lager_not_running
}.
log
(
Level
,
Pid
,
Format
,
Args
)
->
Timestamp
=
lager_util
:
format_time
(),
Msg
=
[
io_lib
:
format
(
"[
~p
]
~p
"
,
[
Level
,
Pid
])
,
string
:
strip
(
lists
:
flatten
(
io_lib
:
format
(
Format
,
Args
)),
right
,
$\n
)],
Msg
=
[
[
"["
,
atom_to_list
(
Level
),
"] "
],
[
pid_to_list
(
Pid
),
" "
]
,
string
:
strip
(
lists
:
flatten
(
io_lib
:
format
(
Format
,
Args
)),
right
,
$\n
)],
safe_notify
(
lager_util
:
level_to_num
(
Level
),
Timestamp
,
Msg
).
%% @doc Set the loglevel for a particular backend.
...
...
This diff is collapsed.
Click to expand it.
src/lager_console_backend.erl
View file @
40b0e2d4
...
...
@@ -24,11 +24,13 @@
-
export
([
init
/
1
,
handle_call
/
2
,
handle_event
/
2
,
handle_info
/
2
,
terminate
/
2
,
code_change
/
3
]).
-
record
(
state
,
{
level
}).
-
record
(
state
,
{
level
,
verbose
}).
%% @private
init
(
Level
)
->
{
ok
,
#state
{
level
=
lager_util
:
level_to_num
(
Level
)}}.
init
(
Level
)
when
is_atom
(
Level
)
->
{
ok
,
#state
{
level
=
lager_util
:
level_to_num
(
Level
),
verbose
=
false
}};
init
([
Level
,
Verbose
])
->
{
ok
,
#state
{
level
=
lager_util
:
level_to_num
(
Level
),
verbose
=
Verbose
}}.
%% @private
handle_call
(
get_loglevel
,
#state
{
level
=
Level
}
=
State
)
->
...
...
@@ -39,8 +41,13 @@ handle_call(_Request, State) ->
{
ok
,
ok
,
State
}.
%% @private
handle_event
({
log
,
Level
,
Time
,
Message
},
#state
{
level
=
LogLevel
}
=
State
)
when
Level
=<
LogLevel
->
io
:
put_chars
([
Time
,
" "
,
Message
,
"
\n
"
]),
handle_event
({
log
,
Level
,
{
Date
,
Time
},
[
LevelStr
,
Location
,
Message
]},
#state
{
level
=
LogLevel
,
verbose
=
Verbose
}
=
State
)
when
Level
=<
LogLevel
->
case
Verbose
of
true
->
io
:
put_chars
([
Date
,
" "
,
Time
,
" "
,
LevelStr
,
Location
,
Message
,
"
\n
"
]);
_
->
io
:
put_chars
([
Time
,
" "
,
LevelStr
,
Message
,
"
\n
"
])
end
,
{
ok
,
State
};
handle_event
(_
Event
,
State
)
->
{
ok
,
State
}.
...
...
This diff is collapsed.
Click to expand it.
src/lager_crash_log.erl
View file @
40b0e2d4
...
...
@@ -79,9 +79,8 @@ handle_cast({log, Event}, #state{name=Name, fd=FD, inode=Inode, flap=Flap, fmtma
true
->
case
lager_util
:
ensure_logfile
(
Name
,
FD
,
Inode
,
false
)
of
{
ok
,
{
NewFD
,
NewInode
}}
->
Time
=
[
lager_util
:
format_time
(
lager_stdlib
:
maybe_utc
(
erlang
:
localtime
())),
" ="
,
ReportStr
,
"====
\n
"
],
{
Date
,
TS
}
=
lager_util
:
format_time
(
lager_stdlib
:
maybe_utc
(
erlang
:
localtime
())),
Time
=
[
Date
,
" "
,
TS
,
" ="
,
ReportStr
,
"====
\n
"
],
NodeSuffix
=
other_node_suffix
(
Pid
),
case
file
:
write
(
NewFD
,
io_lib
:
format
(
"
~s~s~s
"
,
[
Time
,
MsgStr
,
NodeSuffix
]))
of
{
error
,
Reason
}
when
Flap
==
false
->
...
...
This diff is collapsed.
Click to expand it.
src/lager_file_backend.erl
View file @
40b0e2d4
...
...
@@ -87,10 +87,10 @@ handle_call(_Request, State) ->
{
ok
,
ok
,
State
}.
%% @private
handle_event
({
log
,
Level
,
Time
,
Message
},
#state
{
files
=
Files
}
=
State
)
->
handle_event
({
log
,
Level
,
{
Date
,
Time
}
,
Message
},
#state
{
files
=
Files
}
=
State
)
->
NewFiles
=
lists
:
map
(
fun
(
#file
{
level
=
L
}
=
File
)
when
Level
=<
L
->
write
(
File
,
Level
,
[
Time
,
" "
,
Message
,
"
\n
"
]);
write
(
File
,
Level
,
[
Date
,
" "
,
Time
,
" "
,
Message
,
"
\n
"
]);
(
File
)
->
File
end
,
Files
),
...
...
This diff is collapsed.
Click to expand it.
src/lager_transform.erl
View file @
40b0e2d4
...
...
@@ -80,11 +80,11 @@ transform_statement({call, Line, {remote, Line1, {atom, Line2, lager},
{
integer
,
Line3
,
Line
},
{
call
,
Line3
,
{
atom
,
Line3
,
self
},
[]},
{
call
,
Line3
,
{
remote
,
Line3
,
{
atom
,
Line3
,
lager_
stdlib
},
{
atom
,
Line3
,
lager_
util
},
{
atom
,
Line3
,
maybe_utc
}},
[{
call
,
Line3
,{
remote
,
Line3
,
{
atom
,
Line3
,
erlang
},
{
atom
,
Line3
,
localtime
}},[]}]}
{
atom
,
Line3
,
lager_util
},
{
atom
,
Line3
,
localtime
_ms
}},[]}]}
|
Arguments
]}]},
%% No, don't log
...
...
This diff is collapsed.
Click to expand it.
src/lager_util.erl
View file @
40b0e2d4
...
...
@@ -19,7 +19,7 @@
-
include_lib
(
"kernel/include/file.hrl"
).
-
export
([
levels
/
0
,
level_to_num
/
1
,
num_to_level
/
1
,
open_logfile
/
2
,
ensure_logfile
/
4
,
format_time
/
0
,
format_time
/
1
]).
ensure_logfile
/
4
,
format_time
/
0
,
format_time
/
1
,
localtime_ms
/
0
,
maybe_utc
/
1
]).
levels
()
->
[
debug
,
info
,
notice
,
warning
,
error
,
critical
,
alert
,
emergency
].
...
...
@@ -95,10 +95,28 @@ ensure_logfile(Name, FD, Inode, Buffer) ->
end
end
.
%% returns localtime with milliseconds included
localtime_ms
()
->
{_,
_,
Micro
}
=
Now
=
os
:
timestamp
(),
{
Date
,
{
Hours
,
Minutes
,
Seconds
}}
=
calendar
:
now_to_local_time
(
Now
),
{
Date
,
{
Hours
,
Minutes
,
Seconds
,
Micro
div
1000
rem
1000
}}.
maybe_utc
({
Date
,
{
H
,
M
,
S
,
Ms
}})
->
case
lager_stdlib
:
maybe_utc
({
Date
,
{
H
,
M
,
S
}})
of
{
utc
,
{
Date1
,
{
H1
,
M1
,
S1
}}}
->
{
utc
,
{
Date1
,
{
H1
,
M1
,
S1
,
Ms
}}};
{
Date1
,
{
H1
,
M1
,
S1
}}
->
{
Date1
,
{
H1
,
M1
,
S1
,
Ms
}}
end
.
format_time
()
->
format_time
(
lager_stdlib
:
maybe_utc
(
erlang
:
localtime
())).
format_time
(
maybe_utc
(
localtime
_ms
())).
format_time
({
utc
,
{{
Y
,
M
,
D
},
{
H
,
Mi
,
S
,
Ms
}}})
->
{
io_lib
:
format
(
"
~b
-
~2..0b
-
~2..0b
"
,
[
Y
,
M
,
D
]),
io_lib
:
format
(
"
~2..0b
:
~2..0b
:
~2..0b
.
~3..0b
UTC"
,
[
H
,
Mi
,
S
,
Ms
])};
format_time
({{
Y
,
M
,
D
},
{
H
,
Mi
,
S
,
Ms
}})
->
{
io_lib
:
format
(
"
~b
-
~2..0b
-
~2..0b
"
,
[
Y
,
M
,
D
]),
io_lib
:
format
(
"
~2..0b
:
~2..0b
:
~2..0b
.
~3..0b
"
,
[
H
,
Mi
,
S
,
Ms
])};
format_time
({
utc
,
{{
Y
,
M
,
D
},
{
H
,
Mi
,
S
}}})
->
io_lib
:
format
(
"
~b
-
~2..0b
-
~2..0b
~2..0b
:
~2..0b
:
~2..0b
UTC"
,
[
Y
,
M
,
D
,
H
,
Mi
,
S
]);
{
io_lib
:
format
(
"
~b
-
~2..0b
-
~2..0b
"
,
[
Y
,
M
,
D
]),
io_lib
:
format
(
"
~2..0b
:
~2..0b
:
~2..0b
UTC"
,
[
H
,
Mi
,
S
])
}
;
format_time
({{
Y
,
M
,
D
},
{
H
,
Mi
,
S
}})
->
io_lib
:
format
(
"
~b
-
~2..0b
-
~2..0b
~2..0b
:
~2..0b
:
~2..0b
"
,
[
Y
,
M
,
D
,
H
,
Mi
,
S
]).
{
io_lib
:
format
(
"
~b
-
~2..0b
-
~2..0b
"
,
[
Y
,
M
,
D
]),
io_lib
:
format
(
"
~2..0b
:
~2..0b
:
~2..0b
"
,
[
H
,
Mi
,
S
])
}
.
This diff is collapsed.
Click to expand it.
test/lager_test_backend.erl
View file @
40b0e2d4
...
...
@@ -82,7 +82,7 @@ count_ignored() ->
gen_event
:
call
(
lager_event
,
?
MODULE
,
count_ignored
).
not_running_test
()
->
?
assertEqual
({
error
,
lager_not_running
},
lager
:
log
(
info
,
wtf
,
"not running"
)).
?
assertEqual
({
error
,
lager_not_running
},
lager
:
log
(
info
,
self
()
,
"not running"
)).
lager_test_
()
->
{
foreach
,
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment
Menu
Projects
Groups
Snippets
Help