1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- package log
- import (
- "encoding/json"
- "github.com/go-xorm/xorm"
- )
- type Log struct {
- Id int64
- Level int
- Msg string `xorm:"TEXT"`
- }
- type DatabaseWriter struct {
- Driver string `json:"driver"`
- Conn string `json:"conn"`
- Level int `json:"level"`
- x *xorm.Engine
- }
- func NewDatabase() LoggerInterface {
- return &DatabaseWriter{Level: TRACE}
- }
- func (d *DatabaseWriter) Init(jsonconfig string) (err error) {
- if err = json.Unmarshal([]byte(jsonconfig), d); err != nil {
- return err
- }
- d.x, err = xorm.NewEngine(d.Driver, d.Conn)
- if err != nil {
- return err
- }
- return d.x.Sync(new(Log))
- }
- func (d *DatabaseWriter) WriteMsg(msg string, skip, level int) error {
- if level < d.Level {
- return nil
- }
- _, err := d.x.Insert(&Log{Level: level, Msg: msg})
- return err
- }
- func (_ *DatabaseWriter) Flush() {
- }
- func (_ *DatabaseWriter) Destroy() {
- }
- func init() {
- Register("database", NewDatabase)
- }
|