| // Copyright 2012 SocialCode. All rights reserved. |
| // Use of this source code is governed by the MIT |
| // license that can be found in the LICENSE file. |
| |
| package gelf |
| |
| import ( |
| "net" |
| ) |
| |
| type Writer interface { |
| Close() error |
| Write([]byte) (int, error) |
| WriteMessage(*Message) error |
| } |
| |
| // Writer implements io.Writer and is used to send both discrete |
| // messages to a graylog2 server, or data from a stream-oriented |
| // interface (like the functions in log). |
| type GelfWriter struct { |
| addr string |
| conn net.Conn |
| hostname string |
| Facility string // defaults to current process name |
| proto string |
| } |
| |
| // Close connection and interrupt blocked Read or Write operations |
| func (w *GelfWriter) Close() error { |
| if w.conn == nil { |
| return nil |
| } |
| return w.conn.Close() |
| } |