| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- // Copyright (C) 2014 Space Monkey, Inc.
- //
- // Licensed under the Apache License, Version 2.0 (the "License");
- // you may not use this file except in compliance with the License.
- // You may obtain a copy of the License at
- //
- // http://www.apache.org/licenses/LICENSE-2.0
- //
- // Unless required by applicable law or agreed to in writing, software
- // distributed under the License is distributed on an "AS IS" BASIS,
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- // See the License for the specific language governing permissions and
- // limitations under the License.
- package spacelog
- import (
- "text/template"
- )
- // Handler is an interface that knows how to process log events. This is the
- // basic interface type for building a logging system. If you want to route
- // structured log data somewhere, you would implement this interface.
- type Handler interface {
- // Log is called for every message. if calldepth is negative, caller
- // information is missing
- Log(logger_name string, level LogLevel, msg string, calldepth int)
- // These two calls are expected to be no-ops on non-text-output handlers
- SetTextTemplate(t *template.Template)
- SetTextOutput(output TextOutput)
- }
- // HandlerFunc is a type to make implementation of the Handler interface easier
- type HandlerFunc func(logger_name string, level LogLevel, msg string,
- calldepth int)
- // Log simply calls f(logger_name, level, msg, calldepth)
- func (f HandlerFunc) Log(logger_name string, level LogLevel, msg string,
- calldepth int) {
- f(logger_name, level, msg, calldepth)
- }
- // SetTextTemplate is a no-op
- func (HandlerFunc) SetTextTemplate(t *template.Template) {}
- // SetTextOutput is a no-op
- func (HandlerFunc) SetTextOutput(output TextOutput) {}
- var (
- defaultHandler = NewTextHandler(StdlibTemplate,
- &StdlibOutput{})
- )
|