mirror of
https://github.com/mainflux/mainflux.git
synced 2025-05-01 13:48:56 +08:00

* Switch CoAP lib Signed-off-by: dusanb94 <dusan.borovcanin@mainflux.com> * Revert removed adapter code Signed-off-by: dusanb94 <dusan.borovcanin@mainflux.com> * WIP CoAP refactor Signed-off-by: dusanb94 <dusan.borovcanin@mainflux.com> * Add auth key Signed-off-by: dusanb94 <dusan.borovcanin@mainflux.com> * Fix observers map Signed-off-by: dusanb94 <dusan.borovcanin@mainflux.com> * Fix reading message body Signed-off-by: dusanb94 <dusan.borovcanin@mainflux.com> * Fix subtopic parsing Signed-off-by: dusanb94 <dusan.borovcanin@mainflux.com> * Fix error handling Signed-off-by: dusanb94 <dusan.borovcanin@mainflux.com> * Fix multi-protocol communication Signed-off-by: dusanb94 <dusan.borovcanin@mainflux.com> * Separate client from observer Signed-off-by: dusanb94 <dusan.borovcanin@mainflux.com> * Remove unused config Signed-off-by: dusanb94 <dusan.borovcanin@mainflux.com> * Remove TCP option Signed-off-by: dusanb94 <dusan.borovcanin@mainflux.com> * Inline error check Signed-off-by: dusanb94 <dusan.borovcanin@mainflux.com> * Add logging client errors Signed-off-by: dusanb94 <dusan.borovcanin@mainflux.com> * Replace RWMutex since we're not using RLock Signed-off-by: dusanb94 <dusan.borovcanin@mainflux.com> * Inline error handling Signed-off-by: dusanb94 <dusan.borovcanin@mainflux.com> * Inline error handling Signed-off-by: dusanb94 <dusan.borovcanin@mainflux.com>
73 lines
1.9 KiB
Go
73 lines
1.9 KiB
Go
package logging
|
|
|
|
import (
|
|
"sync/atomic"
|
|
)
|
|
|
|
// LogLevel represents the level at which the logger will emit log messages
|
|
type LogLevel int32
|
|
|
|
// Set updates the LogLevel to the supplied value
|
|
func (ll *LogLevel) Set(newLevel LogLevel) {
|
|
atomic.StoreInt32((*int32)(ll), int32(newLevel))
|
|
}
|
|
|
|
// Get retrieves the current LogLevel value
|
|
func (ll *LogLevel) Get() LogLevel {
|
|
return LogLevel(atomic.LoadInt32((*int32)(ll)))
|
|
}
|
|
|
|
func (ll LogLevel) String() string {
|
|
switch ll {
|
|
case LogLevelDisabled:
|
|
return "Disabled"
|
|
case LogLevelError:
|
|
return "Error"
|
|
case LogLevelWarn:
|
|
return "Warn"
|
|
case LogLevelInfo:
|
|
return "Info"
|
|
case LogLevelDebug:
|
|
return "Debug"
|
|
case LogLevelTrace:
|
|
return "Trace"
|
|
default:
|
|
return "UNKNOWN"
|
|
}
|
|
}
|
|
|
|
const (
|
|
// LogLevelDisabled completely disables logging of any events
|
|
LogLevelDisabled LogLevel = iota
|
|
// LogLevelError is for fatal errors which should be handled by user code,
|
|
// but are logged to ensure that they are seen
|
|
LogLevelError
|
|
// LogLevelWarn is for logging abnormal, but non-fatal library operation
|
|
LogLevelWarn
|
|
// LogLevelInfo is for logging normal library operation (e.g. state transitions, etc.)
|
|
LogLevelInfo
|
|
// LogLevelDebug is for logging low-level library information (e.g. internal operations)
|
|
LogLevelDebug
|
|
// LogLevelTrace is for logging very low-level library information (e.g. network traces)
|
|
LogLevelTrace
|
|
)
|
|
|
|
// LeveledLogger is the basic pion Logger interface
|
|
type LeveledLogger interface {
|
|
Trace(msg string)
|
|
Tracef(format string, args ...interface{})
|
|
Debug(msg string)
|
|
Debugf(format string, args ...interface{})
|
|
Info(msg string)
|
|
Infof(format string, args ...interface{})
|
|
Warn(msg string)
|
|
Warnf(format string, args ...interface{})
|
|
Error(msg string)
|
|
Errorf(format string, args ...interface{})
|
|
}
|
|
|
|
// LoggerFactory is the basic pion LoggerFactory interface
|
|
type LoggerFactory interface {
|
|
NewLogger(scope string) LeveledLogger
|
|
}
|