@@ -20,6 +20,29 @@ func init() {
2020 LOGGER_INIT_MAP [BYTE_LOGGER ] = NewByteLogger
2121}
2222
23+ func NewLineBuf (Type string , message string , node string , LogTimestamp bool ) * LineBuf {
24+ buf := & LineBuf {Type : Type , Message : message , Node : node }
25+ if LogTimestamp {
26+ buf .Date = time .Now ().Format ("2006-01-02 15:04:05.00000" )
27+ }
28+ return buf
29+ }
30+
31+ type LineBuf struct {
32+ Type string `json:"type"`
33+ Message string `json:"message"`
34+ Node string `json:"node"`
35+ Date string `json:"date,omitempty"`
36+ }
37+
38+ func (self * LineBuf ) Marshal () ([]byte , error ) {
39+ buf , err := json .Marshal (self )
40+ if err != nil {
41+ return nil , err
42+ }
43+ return buf , nil
44+ }
45+
2346func NewLineLogger () Logger {
2447 logger := LineLogger {
2548 publishers : make ([]Publisher , 0 ),
@@ -47,23 +70,13 @@ func (self *LineLogger) MakeRecord(node string, b []byte, last *RemainBuffer) er
4770 }
4871 for i := 0 ; i < len (b ); i ++ {
4972 if b [i ] == '\n' {
50- var line bytes.Buffer
51- line .Write (b [p :i ])
52- bufMap := make (map [string ]string )
53- bufMap ["type" ] = CONSOLE_TYPE
54- bufMap ["message" ] = line .String ()
55- bufMap ["node" ] = node
56-
57- if serverConfig .Console .LogTimestamp {
58- bufMap ["date" ] = time .Now ().Format ("2006-01-02 15:04:05.00000" )
59- }
73+ lineBuf := NewLineBuf (CONSOLE_TYPE , string (b [p :i ]), node , serverConfig .Console .LogTimestamp )
6074 p = i + 1
61- buf , err = json .Marshal (bufMap )
75+ buf , err = lineBuf .Marshal ()
6276 if err != nil {
6377 plog .ErrorNode (node , err )
6478 continue
6579 }
66- line .Reset ()
6780 self .bufChan <- append (buf , []byte {'\n' }... )
6881 }
6982 }
@@ -75,15 +88,12 @@ func (self *LineLogger) PromptLast(node string, last *RemainBuffer) error {
7588 var err error
7689 var buf []byte
7790 if last .Buf != nil {
78- bufMap := make (map [string ]string )
79- bufMap ["message" ] = string (last .Buf )
80- // check again after copy
81- if bufMap ["message" ] == "" {
91+ message := string (last .Buf )
92+ if message == "" {
8293 return nil
8394 }
84- bufMap ["type" ] = REMAIN_TYPE
85- bufMap ["node" ] = node
86- buf , err = json .Marshal (bufMap )
95+ lineBuf := NewLineBuf (REMAIN_TYPE , message , node , serverConfig .Console .LogTimestamp )
96+ buf , err = lineBuf .Marshal ()
8797 if err != nil {
8898 plog .ErrorNode (node , err )
8999 return err
@@ -118,14 +128,8 @@ func (self *LineLogger) Fetch(node string, count int) (string, error) {
118128func (self * LineLogger ) Prompt (node string , message string ) error {
119129 var err error
120130 var buf []byte
121- bufMap := make (map [string ]string )
122- bufMap ["type" ] = EVENT_TYPE
123- bufMap ["message" ] = message
124- bufMap ["node" ] = node
125- if serverConfig .Console .LogTimestamp {
126- bufMap ["date" ] = time .Now ().Format ("2006-01-02 15:04:05.00000" )
127- }
128- buf , err = json .Marshal (bufMap )
131+ lineBuf := NewLineBuf (EVENT_TYPE , message , node , serverConfig .Console .LogTimestamp )
132+ buf , err = lineBuf .Marshal ()
129133 if err != nil {
130134 plog .ErrorNode (node , err )
131135 return err
0 commit comments