Documentation
¶
Index ¶
- func AddApacheLogger(name string, subsystem Subsystem, severities SeverityMask, verbosity Verbosity, ...)
- func AddConsoleLogger(name string, subsystem Subsystem, severities SeverityMask, verbosity Verbosity, ...)
- func AddConsoleLoggerStderr(name string, subsystem Subsystem, severities SeverityMask, verbosity Verbosity)
- func AddFileLogger(name string, subsystem Subsystem, severities SeverityMask, verbosity Verbosity, ...)
- func AddLogRotator(rotator LogRotator)
- func AddLogger(name string, subsystem Subsystem, severities SeverityMask, verbosity Verbosity, ...)
- func AddPatternApacheLogger(name string, subsystem Subsystem, severities SeverityMask, verbosity Verbosity, ...)
- func AddPatternFileLogger(name string, subsystem Subsystem, severities SeverityMask, verbosity Verbosity, ...)
- func AddRotatableApacheLogger(name string, subsystem Subsystem, severities SeverityMask, verbosity Verbosity, ...)
- func AddRotatableFileLogger(name string, subsystem Subsystem, severities SeverityMask, verbosity Verbosity, ...)
- func AfterChangeMockedTime(waitToRotators bool)
- func Critical1(message string)
- func Critical1f(format string, args ...interface{})
- func Critical1fs(subsystem Subsystem, format string, args ...interface{})
- func Critical1s(subsystem Subsystem, message string)
- func Debug3(message string)
- func Debug3f(format string, args ...interface{})
- func Debug3fs(subsystem Subsystem, format string, args ...interface{})
- func Debug3s(subsystem Subsystem, message string)
- func Debug4(message string)
- func Debug4f(format string, args ...interface{})
- func Debug4fs(subsystem Subsystem, format string, args ...interface{})
- func Debug4s(subsystem Subsystem, message string)
- func Debug5(message string)
- func Debug5f(format string, args ...interface{})
- func Debug5fs(subsystem Subsystem, format string, args ...interface{})
- func Debug5s(subsystem Subsystem, message string)
- func Destroy()
- func DispatcherLogMessage(log LogDispatcher, subsystem Subsystem, severity Severity, verbosity Verbosity, ...)
- func DispatcherLogMessagef(log LogDispatcher, subsystem Subsystem, severity Severity, verbosity Verbosity, ...)
- func DispatcherLogObject(log LogDispatcher, subsystem Subsystem, severity Severity, verbosity Verbosity, ...)
- func Error1(message string)
- func Error1f(format string, args ...interface{})
- func Error1fs(subsystem Subsystem, format string, args ...interface{})
- func Error1s(subsystem Subsystem, message string)
- func Error2(message string)
- func Error2f(format string, args ...interface{})
- func Error2fs(subsystem Subsystem, format string, args ...interface{})
- func Error2s(subsystem Subsystem, message string)
- func Error3(message string)
- func Error3f(format string, args ...interface{})
- func Error3fs(subsystem Subsystem, format string, args ...interface{})
- func Error3s(subsystem Subsystem, message string)
- func Error4(message string)
- func Error4f(format string, args ...interface{})
- func Error4fs(subsystem Subsystem, format string, args ...interface{})
- func Error4s(subsystem Subsystem, message string)
- func Info1(message string)
- func Info1f(format string, args ...interface{})
- func Info1fs(subsystem Subsystem, format string, args ...interface{})
- func Info1s(subsystem Subsystem, message string)
- func Info2(message string)
- func Info2f(format string, args ...interface{})
- func Info2fs(subsystem Subsystem, format string, args ...interface{})
- func Info2s(subsystem Subsystem, message string)
- func Info3(message string)
- func Info3f(format string, args ...interface{})
- func Info3fs(subsystem Subsystem, format string, args ...interface{})
- func Info3s(subsystem Subsystem, message string)
- func Info4(message string)
- func Info4f(format string, args ...interface{})
- func Info4fs(subsystem Subsystem, format string, args ...interface{})
- func Info4s(subsystem Subsystem, message string)
- func Info5(message string)
- func Info5f(format string, args ...interface{})
- func Info5fs(subsystem Subsystem, format string, args ...interface{})
- func Info5s(subsystem Subsystem, message string)
- func Init(system string)
- func InitWithTimeSource(system string, timesrc TimeSource)
- func LogMessage(subsystem Subsystem, severity Severity, verbosity Verbosity, message string)
- func LogMessagef(subsystem Subsystem, severity Severity, verbosity Verbosity, format string, ...)
- func LogObject(subsystem Subsystem, severity Severity, verbosity Verbosity, ...)
- func Warning1(message string)
- func Warning1f(format string, args ...interface{})
- func Warning1fs(subsystem Subsystem, format string, args ...interface{})
- func Warning1s(subsystem Subsystem, message string)
- func Warning2(message string)
- func Warning2f(format string, args ...interface{})
- func Warning2fs(subsystem Subsystem, format string, args ...interface{})
- func Warning2s(subsystem Subsystem, message string)
- func Warning3(message string)
- func Warning3f(format string, args ...interface{})
- func Warning3fs(subsystem Subsystem, format string, args ...interface{})
- func Warning3s(subsystem Subsystem, message string)
- func Warning4(message string)
- func Warning4f(format string, args ...interface{})
- func Warning4fs(subsystem Subsystem, format string, args ...interface{})
- func Warning4s(subsystem Subsystem, message string)
- type ApacheObject
- type Color
- type FileHolder
- type FileWriter
- type LineFormatter
- type LineObject
- type LogDispatcher
- type LogRotator
- type Logger
- type RotatableFileHolder
- type Severity
- type SeverityMask
- type Subsystem
- type TimeSource
- type Verbosity
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AddApacheLogger ¶
func AddApacheLogger( name string, subsystem Subsystem, severities SeverityMask, verbosity Verbosity, file string, sync bool, )
Add a Apache logger
Parameters:
name: ID of the logger subsystem: logging subsystem. Can be empty. severities: mask of logging severities verbosity: logging verbosity file: path to the logging file sync: flush all message immediately
func AddConsoleLogger ¶
func AddConsoleLogger( name string, subsystem Subsystem, severities SeverityMask, verbosity Verbosity, output *os.File, )
Add a console logger
Parameters:
name: ID of the logger subsystem: logging subsystem. Can be empty. severities: mask of logging severities verbosity: logging verbosity output: an output stream
func AddConsoleLoggerStderr ¶
func AddConsoleLoggerStderr( name string, subsystem Subsystem, severities SeverityMask, verbosity Verbosity, )
Add a console logger on the standard error
Parameters:
name: ID of the logger subsystem: logging subsystem. Can be empty. severities: mask of logging severities verbosity: logging verbosity
func AddFileLogger ¶
func AddFileLogger( name string, subsystem Subsystem, severities SeverityMask, verbosity Verbosity, file string, sync bool, )
Add a simple file logger
Parameters:
name: ID of the logger subsystem: logging subsystem. Can be empty. severities: mask of logging severities verbosity: logging verbosity file: path to the logging file sync: flush all message immediately
func AddLogRotator ¶
func AddLogRotator( rotator LogRotator, )
Add a rotator. The rotator is usually connected to one particular logger. See interface LogRotator. Methods NeedRotate + Rotate are runed in separate goroutine. The start time of boths method is determined by the method GetNextCheckTime.
Parameters:
rotator
func AddLogger ¶
func AddLogger( name string, subsystem Subsystem, severities SeverityMask, verbosity Verbosity, logger Logger, )
Add a logger
Parameters:
name: ID of the logger
subsystem: logging subsystem. Can be empty.
severities: mask of logging severities
verbosity: logging verbosity
logger: the logger. The ownership is taken - the logger
is destroyed with the dispatcher.
func AddPatternApacheLogger ¶
func AddPatternApacheLogger( name string, subsystem Subsystem, severities SeverityMask, verbosity Verbosity, pattern string, sync bool, )
Add a Apache logger
Parameters:
name: ID of the logger subsystem: logging subsystem. Can be empty. severities: mask of logging severities verbosity: logging verbosity pattern: pattern of names the log files sync: flush all message immediately
func AddPatternFileLogger ¶
func AddPatternFileLogger( name string, subsystem Subsystem, severities SeverityMask, verbosity Verbosity, pattern string, sync bool, )
Add a pattern file logger
Parameters:
name: ID of the logger subsystem: logging subsystem. Can be empty. severities: mask of logging severities verbosity: logging verbosity pattern: pattern of names the log files sync: flush all message immediately
func AddRotatableApacheLogger ¶
func AddRotatableApacheLogger( name string, subsystem Subsystem, severities SeverityMask, verbosity Verbosity, file string, sync bool, maxSize int64, checkInterval time.Duration, )
Add a rotatable Apache logger (It rotate access.log => access.log.1 => access.log.2 => ...)
Parameters:
name: ID of the logger subsystem: logging subsystem. Can be empty. severities: mask of logging severities verbosity: logging verbosity file: path to the logging file sync: flush all message immediately maxSize: Make log rotation if log size is bigger than maxSize. checkInterval: time interval to check the log size; usually minutes or tens of minutes
func AddRotatableFileLogger ¶
func AddRotatableFileLogger( name string, subsystem Subsystem, severities SeverityMask, verbosity Verbosity, file string, sync bool, maxSize int64, checkInterval time.Duration, )
Add a rotatable file logger (It rotate file.log => file.log.1 => file.log.2 => ...)
Parameters:
name: ID of the logger subsystem: logging subsystem. Can be empty. severities: mask of logging severities verbosity: logging verbosity file: path to the logging file sync: flush all message immediately maxSize: Make log rotation if log size is bigger than maxSize. checkInterval: time interval to check the log size; usually minutes or tens of minutes
func AfterChangeMockedTime ¶
func AfterChangeMockedTime(waitToRotators bool)
If mocked time source is used (see InitWithTimeSource), this method must be called after every time shift.
Parameters:
waitToRotators - true => Wait to finish corresponding rotators actions (scheduled for this time or earlier).
func Critical1f ¶
func Critical1f( format string, args ...interface{}, )
func Critical1fs ¶
func Critical1s ¶
func DispatcherLogMessage ¶
func DispatcherLogMessage( log LogDispatcher, subsystem Subsystem, severity Severity, verbosity Verbosity, message string, )
Log a text message
func DispatcherLogMessagef ¶
func DispatcherLogMessagef( log LogDispatcher, subsystem Subsystem, severity Severity, verbosity Verbosity, format string, args ...interface{}, )
Log a formatted text message
func DispatcherLogObject ¶
func DispatcherLogObject( log LogDispatcher, subsystem Subsystem, severity Severity, verbosity Verbosity, object interface{}, )
Log a logging object
func Init ¶
func Init( system string, )
Initialize the global log
Parameters:
system: a system identifier shown in the logs
func InitWithTimeSource ¶
func InitWithTimeSource( system string, timesrc TimeSource, )
Initialize the global log with specified time source
func LogMessage ¶
Log a text message
Parameters:
subsystem: logging subsystem severity: logging severity verbosity: logging verbosity message: the message
func LogMessagef ¶
func LogMessagef( subsystem Subsystem, severity Severity, verbosity Verbosity, format string, args ...interface{}, )
Log a formatted text message
Parameters:
subsystem: logging subsystem severity: logging severity verbosity: logging verbosity format: printf-like format of the message args: arguments of the message
func LogObject ¶
Log a logging object into the global log
Parameters:
subsystem: logging subsystem severity: logging severity verbosity: logging verbosity object: logging object
func Warning1fs ¶
func Warning2fs ¶
func Warning3fs ¶
func Warning4fs ¶
Types ¶
type ApacheObject ¶
type ApacheObject interface {
// Get values to be logged
//
// Returns:
// remoteHost: IP or host of the client
// identity: identity string (RFC 1413)
// user: user name determined by the http authentication
// requestTime: time when the request comes (local time)
// method: http method
// resource: resource from the request line
// protocol: used protocol (ie HTTP/1.0)
// status: status code returned to the user
// length: length of the response without the header
// referer: referer string
// agent: user agent (browser)
GetValues() (
remoteHost string,
identity string,
user string,
requestTime time.Time,
method string,
resource string,
protocol string,
status int,
length uint64,
referer string,
agent string)
}
This is a logging interface used for the Apache combined logging format.
type FileHolder ¶
type FileHolder interface {
// Access and log the log writer for writing of one item
AccessWriter(
functor func(writer FileWriter))
// Increase reference counter - there is new owner of the holder
//
// Returns: itself
Ref() FileHolder
// Decrease reference counter
//
// If the counter reaches zero the object is destroyed (files
// closed etc.)
//
// Expectation: there are no other threads accessing the holder
// if the reference counter reaches zero!
Unref()
}
Holder of a file
This interface wraps a logging file. The file can be just one physical file. Or it can be a pattern defining a rotating logs.
func NewSimpleFile ¶
func NewSimpleFile( filepath string, sync bool, ) FileHolder
Create new simple file holder
Parameters:
filepath: name of the logging file sync: if true, the stream is flushed after every message
Returns:
the new file holder
Note: the reference counter is set to 1. You have to invoke Unref()
to clean up the holder.
func NewSimpleFileHandle ¶
func NewSimpleFileHandle( file *os.File, sync bool, ) FileHolder
Create new simple file holder working over an opened file handle
Parameters:
file: the opened file sync: if true, the stream is flushed after every message
Returns:
the new file holder
Note: the reference counter is set to 1. You have to invoke Unref()
to clean up the holder.
type FileWriter ¶
type FileWriter interface {
// If writter is not closable, the method Close returns nil.
io.WriteCloser
// If it is unable to read file info, it returns nil
Stat() os.FileInfo
// Flush the output
Sync()
// Change output color
ChangeColor(
color Color)
// Reset the output color
ResetColor()
}
Generic file writer
This interface is a classic io.Writer interface extended by possibility to change colors of the output.
type LineFormatter ¶
type LineFormatter interface {
// Format a line
//
// Parameters:
// writer: line writer
// now: current time
// system: logging system
// subsystem: logging subsystem (can be empty)
// severity: severity of the logging message
// verbosity: verbosity of the logging message
// line: the logging message
FormatLine(
writer FileWriter,
now time.Time,
system string,
subsystem Subsystem,
severity Severity,
verbosity Verbosity,
line string)
}
Generic line formatter
Implementations of this class format output logging lines
func NewLineFormatterDefault ¶
func NewLineFormatterDefault( short bool, ) LineFormatter
Create new default line formatter
Parameters:
short: determine whether the short format should be used
type LineObject ¶
type LineObject interface {
// Get the message line
GetLogLine() string
}
Simple line logging object
This interface wraps simple logging message - one line of text
type LogDispatcher ¶
type LogDispatcher interface {
// Destroy the distpatcher
//
// Warning: this method is not thread safe. Use it if you're certain
// all threads have stopped already.
Destroy()
// Log an object
//
// Parameters:
// subsystem: ID of logging subsystem
// severity: severity of the log message
// verbosity: verbosity of the log message
// object: an object to be logged
LogObject(
subsystem Subsystem,
severity Severity,
verbosity Verbosity,
object interface{})
// Add new logger
//
// Parameters:
// name: a unique name of the logger
// subsystem: ID of logging subsystem
// severity: maximal severity of the logger
// verbosity: maximal verbosity of the logger
// logger: the logger object
AddLogger(
name string,
subsystem Subsystem,
severities SeverityMask,
verbosity Verbosity,
logger Logger)
}
Dispatch a log object into the logger objects
func NewLogDispatcher ¶
func NewLogDispatcher( system string, ) LogDispatcher
Create new log dispatcher
Parameters:
system: an identifier shown in the logs
type LogRotator ¶
type LogRotator interface {
// return if this file need rotation
NeedRotate(timesrc TimeSource) bool
// Rotate this file
Rotate(timesrc TimeSource)
// Return the time of next check. It is called after logsRotator.Add and after NeedRotate/Rotate
GetNextCheckTime(timesrc TimeSource) time.Time
}
The rotator interface. The rotator is usually connected to one particular logger. If a rotator is added to logsRotatorStarter, methods NeedRotate + Rotate are runed in separate goroutine. The start time of boths method is determined by the method GetNextCheckTime.
type Logger ¶
type Logger interface {
// Destroy the logger
//
// Warning: the method is not thread safe!
Destroy()
// Log an object
//
// Parameters:
// system: a logging system
// subsystem: a logging sybsystem
// severity: message severity
// verbosity: message verbosity
// object: an object to be logged
LogObject(
system string,
subsystem Subsystem,
severity Severity,
verbosity Verbosity,
object interface{})
}
An object logger
func NewApacheLogger ¶
func NewApacheLogger( file FileHolder, ) Logger
Create new apache logger
The Apache logger expects the Apache logging objects. The output format follows the combined Apache logging format.
Parameters:
file: a file holder used for the output
Returns:
the logger
func NewFileLogger ¶
func NewFileLogger( timesrc TimeSource, file FileHolder, formatter LineFormatter, ) Logger
Create new file logger
Parameters:
timesrc: a timesource file: a file holder used for the output formatter: a line formatter
Returns:
the logger
type RotatableFileHolder ¶
type RotatableFileHolder interface {
LogRotator
FileHolder
}
FileHolder with the LogRotator
func NewPatternFile ¶
func NewPatternFile( timesrc TimeSource, pattern string, sync bool, ) RotatableFileHolder
Create new pattern file holder
This implementation allows rotating of log files according specified pattern.
The pattern is a string which can contain special sequences:
%Y ..... year (4 digits) %m ..... month (01 - 12) %d ..... day (01 - 31) %H ..... hour (00 - 23) %M ..... minute (00 - 59) %% ..... %
Parameters:
timesrc: time source pattern: the filename pattern sync: flush the file after every line
Returns:
the new file holder
Note: the reference counter is set to 1. You have to invoke Unref()
to clean up the holder.
func NewRotatableFile ¶
func NewRotatableFile(filePath string, sync bool, maxSize int64, checkInterval time.Duration) RotatableFileHolder
Create new rotatable file holder.
Parameters:
filepath: name of the logging file sync: if true, the stream is flushed after every message maxSize: Make log rotation if log size is bigger than maxSize. checkInterval: time interval to check the log size; usually minutes or tens of minutes
Returns:
the new rotatable file holder
Note: the reference counter is set to 1. You have to invoke Unref()
to clean up the holder.
type SeverityMask ¶
type SeverityMask uint32
Mask of severities
const ( MaskCritical SeverityMask = SeverityMask(Critical) MaskError SeverityMask = SeverityMask(Error) MaskWarning SeverityMask = SeverityMask(Warning) MaskInfo SeverityMask = SeverityMask(Info) MaskDebug SeverityMask = SeverityMask(Debug) MaskStd SeverityMask = SeverityMask(Critical | Error | Warning | Info) MaskAll SeverityMask = SeverityMask(Critical | Error | Warning | Info | Debug) )
type TimeSource ¶
Source of current time used in the logging messages
func NewTimeSourceLocal ¶
func NewTimeSourceLocal() TimeSource
Create new local time source
This time source returns local current time read from the system