Skip to content

Commit

Permalink
File arch upd
Browse files Browse the repository at this point in the history
  • Loading branch information
Avdushin committed Dec 20, 2023
1 parent ea6d73c commit 8461c2e
Show file tree
Hide file tree
Showing 2 changed files with 43 additions and 43 deletions.
36 changes: 36 additions & 0 deletions logger/level.go
Original file line number Diff line number Diff line change
@@ -1 +1,37 @@
package logger

// Debug записывает лог уровня DEBUG
func (l *Logger) Debug(format string, args ...interface{}) {
l.log(DEBUG, format, args...)
}

// Info записывает лог уровня INFO
func (l *Logger) Info(format string, args ...interface{}) {
l.log(INFO, format, args...)
}

// Warning записывает лог уровня WARNING
func (l *Logger) Warning(format string, args ...interface{}) {
l.log(WARNING, format, args...)
}

// Error записывает лог уровня ERROR
func (l *Logger) Error(format string, args ...interface{}) {
l.log(ERROR, format, args...)
}

// logLevelToString преобразует уровень логирования в строку
func (l *Logger) logLevelToString(level LogLevel) string {
switch level {
case DEBUG:
return "DEBUG"
case INFO:
return "INFO"
case WARNING:
return "WARNING"
case ERROR:
return "ERROR"
default:
return "INFO"
}
}
50 changes: 7 additions & 43 deletions logger/logger.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import (
"time"
)

// Уровни логирования
// @ Уровни логирования
type LogLevel int

const (
Expand All @@ -20,15 +20,15 @@ const (
ERROR
)

// Logger - основная структура логгера
// @ Logger - основная структура логгера
type Logger struct {
mu sync.Mutex
fileWriter io.Writer
logLevel LogLevel
logFormat string
}

// CreateDailyLogFile создает файл лога в отдельной папке с именем текущей даты
// @ CreateDailyLogFile создает файл лога в отдельной папке с именем текущей даты
func (l *Logger) CreateDailyLogFile() (string, error) {
// Определяем текущую дату
now := time.Now()
Expand Down Expand Up @@ -99,7 +99,7 @@ func New(args ...interface{}) *Logger {
return l
}

// createLogFile создает файл лога и его директорию, если они не существуют
// @ createLogFile создает файл лога и его директорию, если они не существуют
func createLogFile(filePath string) error {
dir := filepath.Dir(filePath)
err := os.MkdirAll(dir, os.ModePerm)
Expand All @@ -116,21 +116,21 @@ func createLogFile(filePath string) error {
return nil
}

// SetLogLevel устанавливает уровень логирования
// @ SetLogLevel устанавливает уровень логирования
func (l *Logger) SetLogLevel(level LogLevel) {
l.mu.Lock()
defer l.mu.Unlock()
l.logLevel = level
}

// SetLogFormat устанавливает формат лога
// @ SetLogFormat устанавливает формат лога
func (l *Logger) SetLogFormat(format string) {
l.mu.Lock()
defer l.mu.Unlock()
l.logFormat = format
}

// log записывает лог в консоль и/или файл в зависимости от настроек
// @ log записывает лог в консоль и/или файл в зависимости от настроек
func (l *Logger) log(level LogLevel, format string, args ...interface{}) {
if level < l.logLevel {
return
Expand All @@ -157,42 +157,6 @@ func (l *Logger) log(level LogLevel, format string, args ...interface{}) {
}
}

// Debug записывает лог уровня DEBUG
func (l *Logger) Debug(format string, args ...interface{}) {
l.log(DEBUG, format, args...)
}

// Info записывает лог уровня INFO
func (l *Logger) Info(format string, args ...interface{}) {
l.log(INFO, format, args...)
}

// Warning записывает лог уровня WARNING
func (l *Logger) Warning(format string, args ...interface{}) {
l.log(WARNING, format, args...)
}

// Error записывает лог уровня ERROR
func (l *Logger) Error(format string, args ...interface{}) {
l.log(ERROR, format, args...)
}

// logLevelToString преобразует уровень логирования в строку
func (l *Logger) logLevelToString(level LogLevel) string {
switch level {
case DEBUG:
return "DEBUG"
case INFO:
return "INFO"
case WARNING:
return "WARNING"
case ERROR:
return "ERROR"
default:
return "INFO"
}
}

func (l *Logger) Write(p []byte) (n int, err error) {
l.mu.Lock()
defer l.mu.Unlock()
Expand Down

0 comments on commit 8461c2e

Please sign in to comment.