Skip to content
Toggle navigation
Toggle navigation
This project
Loading...
Sign in
张磊
/
FileStorageBeego
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Issue Boards
Files
Commits
Network
Compare
Branches
Tags
d9bb1a35
authored
2015-06-13 00:25:48 +0800
by
astaxie
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
logs support elasticsearch adapter
1 parent
9c6775c2
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
76 additions
and
0 deletions
logs/es/es.go
logs/es/es.go
0 → 100644
View file @
d9bb1a3
package
es
import
(
"encoding/json"
"errors"
"fmt"
"net"
"net/url"
"time"
"github.com/astaxie/beego/logs"
"github.com/belogik/goes"
)
func
NewES
()
logs
.
LoggerInterface
{
cw
:=
&
esLogger
{
Level
:
logs
.
LevelDebug
,
}
return
cw
}
type
esLogger
struct
{
*
goes
.
Connection
DSN
string
`json:"dsn"`
Level
int
`json:"level"`
}
// {"dsn":"http://localhost:9200/","level":1}
func
(
el
*
esLogger
)
Init
(
jsonconfig
string
)
error
{
err
:=
json
.
Unmarshal
([]
byte
(
jsonconfig
),
el
)
if
err
!=
nil
{
return
err
}
if
el
.
DSN
==
""
{
return
errors
.
New
(
"empty dsn"
)
}
else
if
u
,
err
:=
url
.
Parse
(
el
.
DSN
);
err
!=
nil
{
return
err
}
else
if
u
.
Path
==
""
{
return
errors
.
New
(
"missing prefix"
)
}
else
if
host
,
port
,
err
:=
net
.
SplitHostPort
(
u
.
Host
);
err
!=
nil
{
return
err
}
else
{
conn
:=
goes
.
NewConnection
(
host
,
port
)
el
.
Connection
=
conn
}
return
nil
}
func
(
el
*
esLogger
)
WriteMsg
(
msg
string
,
level
int
)
error
{
if
level
>
el
.
Level
{
return
nil
}
t
:=
time
.
Now
()
vals
:=
make
(
map
[
string
]
interface
{})
vals
[
"@timestamp"
]
=
t
.
Format
(
time
.
RFC3339
)
vals
[
"@msg"
]
=
msg
d
:=
goes
.
Document
{
Index
:
fmt
.
Sprintf
(
"%04d.%02d.%02d"
,
t
.
Year
(),
t
.
Month
(),
t
.
Day
()),
Type
:
"logs"
,
Fields
:
vals
,
}
_
,
err
:=
el
.
Index
(
d
,
nil
)
return
err
}
func
(
el
*
esLogger
)
Destroy
()
{
}
func
(
el
*
esLogger
)
Flush
()
{
}
func
init
()
{
logs
.
Register
(
"es"
,
NewES
)
}
Write
Preview
Styling with
Markdown
is supported
Attach a file
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 post a comment