Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
G
Geth-Modification
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
张蕾
Geth-Modification
Commits
9edb9a21
Commit
9edb9a21
authored
Mar 21, 2015
by
Taylor Gerring
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add json LogSystem #538
parent
4f5b362b
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
27 additions
and
2 deletions
+27
-2
log.go
logger/log.go
+2
-0
logsystem.go
logger/logsystem.go
+24
-0
sys.go
logger/sys.go
+1
-2
No files found.
logger/log.go
View file @
9edb9a21
...
...
@@ -30,6 +30,8 @@ func New(datadir string, logFile string, logLevel int, logFormat string) LogSyst
switch
logFormat
{
case
"raw"
:
sys
=
NewRawLogSystem
(
writer
,
0
,
LogLevel
(
logLevel
))
case
"json"
:
sys
=
NewJsonLogSystem
(
writer
,
0
,
LogLevel
(
logLevel
))
default
:
sys
=
NewStdLogSystem
(
writer
,
log
.
LstdFlags
,
LogLevel
(
logLevel
))
}
...
...
logger/logsystem.go
View file @
9edb9a21
...
...
@@ -61,3 +61,27 @@ func (t *rawLogSystem) SetLogLevel(i LogLevel) {
func
(
t
*
rawLogSystem
)
GetLogLevel
()
LogLevel
{
return
LogLevel
(
atomic
.
LoadUint32
(
&
t
.
level
))
}
// NewRawLogSystem creates a LogSystem that prints to the given writer without
// adding extra information. Suitable for preformatted output
func
NewJsonLogSystem
(
writer
io
.
Writer
,
flags
int
,
level
LogLevel
)
LogSystem
{
logger
:=
log
.
New
(
writer
,
""
,
0
)
return
&
jsonLogSystem
{
logger
,
uint32
(
level
)}
}
type
jsonLogSystem
struct
{
logger
*
log
.
Logger
level
uint32
}
func
(
t
*
jsonLogSystem
)
LogPrint
(
level
LogLevel
,
msg
string
)
{
t
.
logger
.
Print
(
msg
)
}
func
(
t
*
jsonLogSystem
)
SetLogLevel
(
i
LogLevel
)
{
atomic
.
StoreUint32
(
&
t
.
level
,
uint32
(
i
))
}
func
(
t
*
jsonLogSystem
)
GetLogLevel
()
LogLevel
{
return
LogLevel
(
atomic
.
LoadUint32
(
&
t
.
level
))
}
logger/sys.go
View file @
9edb9a21
...
...
@@ -76,8 +76,7 @@ func dispatchLoop() {
func
sysLoop
(
sys
LogSystem
,
in
<-
chan
message
,
wg
*
sync
.
WaitGroup
)
{
for
msg
:=
range
in
{
switch
sys
.
(
type
)
{
case
*
rawLogSystem
:
// This is a semantic hack since rawLogSystem has little to do with JsonLevel
case
*
jsonLogSystem
:
if
msg
.
level
==
JsonLevel
{
sys
.
LogPrint
(
msg
.
level
,
msg
.
msg
)
}
...
...
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