123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- package logger
- import (
- "io"
- "log"
- "os"
- "time"
- "gogs.veloe.link/toomanysugar/GoEthemineTelegramBot/cmd/settings"
- )
- type customLogWriter struct {
- Writer io.Writer
- }
- var (
- LogInfo *log.Logger
- LogWarn *log.Logger
- LogError *log.Logger
- LogDebug *log.Logger
- )
- // Initializes Loggers
- func LoggersInit() {
- fullLogPath := settings.FullLogPath()
- errorLogPath := settings.ErrorLogPath()
- fullLog, err := os.OpenFile(fullLogPath, os.O_CREATE|os.O_APPEND|os.O_RDWR, 0766)
- if err != nil {
- log.Panic(err)
- }
- // Prints log to os.Stdout, fullLog,
- fullLogWriter := &customLogWriter{io.MultiWriter(os.Stdout, fullLog)}
- errLog, err := os.OpenFile(errorLogPath, os.O_CREATE|os.O_APPEND|os.O_RDWR, 0766)
- if err != nil {
- log.Panic(err)
- }
- // Prints log to os.Stdout, fullLog, errLog
- errLogWriter := &customLogWriter{io.MultiWriter(os.Stdout, fullLog, errLog)}
- LogInfo = log.New(fullLogWriter, "INFO\t", 0)
- LogWarn = log.New(fullLogWriter, "WARNING\t", 0)
- LogError = log.New(errLogWriter, "ERROR\t", log.Lshortfile)
- LogDebug = log.New(fullLogWriter, "DEBUG\t", log.Lshortfile)
- }
- // Passes message to writer with added current time
- func (writer customLogWriter) Write(message []byte) (int, error) {
- bytes := append([]byte(time.Now().Format("[01-02-2006 15:04:05] "))[:], message...)
- n, err := writer.Writer.Write(bytes)
- if err != nil {
- return n, err
- }
- if n != len(bytes) {
- return n, io.ErrShortWrite
- }
- return len(bytes), nil
- }
|