Add Bytes() method to Entry, and use it to avoid double type cast

This commit is contained in:
tbunyk 2019-03-18 16:07:31 +02:00
parent 470f2e08fc
commit c88f8de1fe
2 changed files with 8 additions and 3 deletions

View File

@ -85,10 +85,15 @@ func NewEntry(logger *Logger) *Entry {
}
}
// Returns the bytes representation of this entry from the formatter.
func (entry *Entry) Bytes() ([]byte, error) {
return entry.Logger.Formatter.Format(entry)
}
// Returns the string representation from the reader and ultimately the
// formatter.
func (entry *Entry) String() (string, error) {
serialized, err := entry.Logger.Formatter.Format(entry)
serialized, err := entry.Bytes()
if err != nil {
return "", err
}

View File

@ -15,11 +15,11 @@ type Hook struct {
// Fire will be called when some logging function is called with current hook
// It will format log entry to string and write it to appropriate writer
func (hook *Hook) Fire(entry *log.Entry) error {
line, err := entry.String()
line, err := entry.Bytes()
if err != nil {
return err
}
_, err = hook.Writer.Write([]byte(line))
_, err = hook.Writer.Write(line)
return err
}