| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- package log
- import (
- "v2ray.com/core/common/log/internal"
- )
- type LogLevel int
- const (
- DebugLevel = LogLevel(0)
- InfoLevel = LogLevel(1)
- WarningLevel = LogLevel(2)
- ErrorLevel = LogLevel(3)
- NoneLevel = LogLevel(999)
- )
- var (
- streamLoggerInstance internal.LogWriter = internal.NewStdOutLogWriter()
- debugLogger internal.LogWriter = streamLoggerInstance
- infoLogger internal.LogWriter = streamLoggerInstance
- warningLogger internal.LogWriter = streamLoggerInstance
- errorLogger internal.LogWriter = streamLoggerInstance
- )
- func SetLogLevel(level LogLevel) {
- debugLogger = new(internal.NoOpLogWriter)
- if level <= DebugLevel {
- debugLogger = streamLoggerInstance
- }
- infoLogger = new(internal.NoOpLogWriter)
- if level <= InfoLevel {
- infoLogger = streamLoggerInstance
- }
- warningLogger = new(internal.NoOpLogWriter)
- if level <= WarningLevel {
- warningLogger = streamLoggerInstance
- }
- errorLogger = new(internal.NoOpLogWriter)
- if level <= ErrorLevel {
- errorLogger = streamLoggerInstance
- }
- if level == NoneLevel {
- accessLoggerInstance = new(internal.NoOpLogWriter)
- }
- }
- func InitErrorLogger(file string) error {
- logger, err := internal.NewFileLogWriter(file)
- if err != nil {
- Error("Failed to create error logger on file (", file, "): ", err)
- return err
- }
- streamLoggerInstance = logger
- return nil
- }
- // Debug outputs a debug log with given format and optional arguments.
- func Debug(v ...interface{}) {
- debugLogger.Log(&internal.ErrorLog{
- Prefix: "[Debug]",
- Values: v,
- })
- }
- // Info outputs an info log with given format and optional arguments.
- func Info(v ...interface{}) {
- infoLogger.Log(&internal.ErrorLog{
- Prefix: "[Info]",
- Values: v,
- })
- }
- // Warning outputs a warning log with given format and optional arguments.
- func Warning(v ...interface{}) {
- warningLogger.Log(&internal.ErrorLog{
- Prefix: "[Warning]",
- Values: v,
- })
- }
- // Error outputs an error log with given format and optional arguments.
- func Error(v ...interface{}) {
- errorLogger.Log(&internal.ErrorLog{
- Prefix: "[Error]",
- Values: v,
- })
- }
- func Close() {
- streamLoggerInstance.Close()
- accessLoggerInstance.Close()
- }
|