boulder: github.com/letsencrypt/boulder/log Index | Examples | Files

package log

import "github.com/letsencrypt/boulder/log"

Index

Examples

Package Files

log.go mock.go

func LogLineChecksum Uses

func LogLineChecksum(line string) string

func Set Uses

func Set(logger Logger) (err error)

Set configures the singleton Logger. This method must only be called once, and before calling Get the first time.

type Logger Uses

type Logger interface {
    Err(msg string)
    Errf(format string, a ...interface{})
    Warning(msg string)
    Warningf(format string, a ...interface{})
    Info(msg string)
    Infof(format string, a ...interface{})
    Debug(msg string)
    Debugf(format string, a ...interface{})
    AuditPanic()
    AuditInfo(msg string)
    AuditInfof(format string, a ...interface{})
    AuditObject(string, interface{})
    AuditErr(string)
    AuditErrf(format string, a ...interface{})
}

A Logger logs messages with explicit priority levels. It is implemented by a logging back-end as provided by New() or NewMock().

Code:

// Write all logs to UDP on a high port so as to not bother the system
// which is running the test
writer, err := syslog.Dial("udp", "127.0.0.1:65530", syslog.LOG_INFO|syslog.LOG_LOCAL0, "")
if err != nil {
    log.Fatal(err)
}

logger, err := New(writer, stdoutLevel, syslogLevel)
if err != nil {
    log.Fatal(err)
}
impl, ok := logger.(*impl)
if !ok {
    log.Fatalf("Wrong type returned from New: %T", logger)
}

bw, ok := impl.w.(*bothWriter)
if !ok {
    log.Fatalf("Wrong type of impl's writer: %T\n", impl.w)
}
bw.clk = clock.NewFake()
impl.AuditErr("Error Audit")
impl.Warning("Warning Audit")

Output:

E000000 log.test 46_ghQg [AUDIT] Error Audit
W000000 log.test 9rr1xwQ Warning Audit

func Get Uses

func Get() Logger

Get obtains the singleton Logger. If Set has not been called first, this method initializes with basic defaults. The basic defaults cannot error, and subsequent access to an already-set Logger also cannot error, so this method is error-safe.

func New Uses

func New(log *syslog.Writer, stdoutLogLevel int, syslogLogLevel int) (Logger, error)

New returns a new Logger that uses the given syslog.Writer as a backend.

type Mock Uses

type Mock struct {
    // contains filtered or unexported fields
}

Mock is a logger that stores all log messages in memory to be examined by a test.

func NewMock Uses

func NewMock() *Mock

NewMock creates a mock logger.

func UseMock Uses

func UseMock() *Mock

UseMock sets a mock logger as the default logger, and returns it.

func (*Mock) AuditErr Uses

func (log *Mock) AuditErr(msg string)

AuditErr can format an error for auditing; it does so at ERR level.

func (*Mock) AuditErrf Uses

func (log *Mock) AuditErrf(format string, a ...interface{})

AuditErrf can format an error for auditing; it does so at ERR level.

func (*Mock) AuditInfo Uses

func (log *Mock) AuditInfo(msg string)

AuditInfo sends an INFO-severity message that is prefixed with the audit tag, for special handling at the upstream system logger.

func (*Mock) AuditInfof Uses

func (log *Mock) AuditInfof(format string, a ...interface{})

AuditInfof sends an INFO-severity message that is prefixed with the audit tag, for special handling at the upstream system logger.

func (*Mock) AuditObject Uses

func (log *Mock) AuditObject(msg string, obj interface{})

AuditObject sends an INFO-severity JSON-serialized object message that is prefixed with the audit tag, for special handling at the upstream system logger.

func (*Mock) AuditPanic Uses

func (log *Mock) AuditPanic()

AuditPanic catches panicking executables. This method should be added in a defer statement as early as possible

func (*Mock) Clear Uses

func (m *Mock) Clear()

Clear resets the log buffer.

func (*Mock) Debug Uses

func (log *Mock) Debug(msg string)

Debug level messages pass through normally.

func (*Mock) Debugf Uses

func (log *Mock) Debugf(format string, a ...interface{})

Debugf level messages pass through normally.

func (*Mock) Err Uses

func (log *Mock) Err(msg string)

Err level messages are always marked with the audit tag, for special handling at the upstream system logger.

func (*Mock) Errf Uses

func (log *Mock) Errf(format string, a ...interface{})

Errf level messages are always marked with the audit tag, for special handling at the upstream system logger.

func (*Mock) GetAll Uses

func (m *Mock) GetAll() []string

GetAll returns all messages logged since instantiation or the last call to Clear().

The caller must not modify the returned slice or its elements.

func (*Mock) GetAllMatching Uses

func (m *Mock) GetAllMatching(reString string) []string

GetAllMatching returns all messages logged since instantiation or the last Clear() whose text matches the given regexp. The regexp is accepted as a string and compiled on the fly, because convenience is more important than performance.

The caller must not modify the elements of the returned slice.

func (*Mock) Info Uses

func (log *Mock) Info(msg string)

Info level messages pass through normally.

func (*Mock) Infof Uses

func (log *Mock) Infof(format string, a ...interface{})

Infof level messages pass through normally.

func (*Mock) Warning Uses

func (log *Mock) Warning(msg string)

Warning level messages pass through normally.

func (*Mock) Warningf Uses

func (log *Mock) Warningf(format string, a ...interface{})

Warningf level messages pass through normally.

Package log imports 14 packages (graph) and is imported by 814 packages. Updated 2019-11-21. Refresh now. Tools for package owners.