blob: f0d886fdbfcf98fd971e206087a86c8838035d9f [file] [log] [blame]
// Copyright (C) 2016 The Android Open Source Project
// 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
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// See the License for the specific language governing permissions and
// limitations under the License.
package log
// The context key used to store the Severity of a log message in the log context
const SeverityKey = "severity"
const (
EmergencyLevel = Severity_Emergency
AlertLevel = Severity_Alert
CriticalLevel = Severity_Critical
ErrorLevel = Severity_Error
WarningLevel = Severity_Warning
NoticeLevel = Severity_Notice
InfoLevel = Severity_Info
DebugLevel = Severity_Debug
// GetSeverity gets the severity stored in the given context.
func GetSeverity(ctx Context) Severity {
s, ok := ctx.Value(SeverityKey).(Severity)
if !ok {
s = Severity(-1)
return s
// Severity returns a context with the given Severity set on it.
func (ctx logContext) Severity(severity Severity) Context {
return ctx.setValue(SeverityKey, severity)
// Emergency is shorthand for ctx.At(EmergencyLevel)
func (ctx logContext) Emergency() Logger {
return ctx.At(EmergencyLevel)
// Alert is is shorthand for ctx.At(AlertLevel)
func (ctx logContext) Alert() Logger {
return ctx.At(AlertLevel)
// Critical is shorthand for ctx.At(CriticalLevel)
func (ctx logContext) Critical() Logger {
return ctx.At(CriticalLevel)
// Error is shorthand for ctx.At(ErrorLevel).Cause(err)
func (ctx logContext) Error() Logger {
return ctx.At(ErrorLevel)
// Warning is shorthand for ctx.At(WarningLevel)
func (ctx logContext) Warning() Logger {
return ctx.At(WarningLevel)
// Notice is shorthand for ctx.At(NoticeLevel)
func (ctx logContext) Notice() Logger {
return ctx.At(NoticeLevel)
// Info is shorthand for ctx.At(InfoLevel)
func (ctx logContext) Info() Logger {
return ctx.At(InfoLevel)
// Debug is shorthand for ctx.At(DebugLevel)
func (ctx logContext) Debug() Logger {
return ctx.At(DebugLevel)
// DebugN is shorthand for ctx.At(DebugLevel + n)
func (ctx logContext) DebugN(n int) Logger {
return ctx.At(Severity(int(DebugLevel) + n))