9 Commits

Author SHA1 Message Date
paadi a7b4e70867 optimze package and remove logging subpackage 2026-04-20 12:11:47 +00:00
root b53f0a09b2 change to local domain 2026-04-20 11:28:00 +00:00
Adrian Zürcher 40099fffc6 fix .log ending for empty parameter in linux systems 2026-01-18 21:42:36 +01:00
Adrian Zürcher 62238574cb change empty filepath to executable name 2025-12-12 10:01:11 +01:00
Adrian Zürcher a022a9a8ba replace main to test modul 2025-12-12 10:00:39 +01:00
Adrian Zuercher c31761dc10 reo name change 2025-08-06 22:28:09 +02:00
Adrian Zuercher 29f3ee26f9 new config options and error handles new input any 2025-04-21 12:59:16 +02:00
Adrian Zürcher 6f963ae0a4 learn lessions 2025-04-16 09:36:50 +02:00
Adrian Zürcher cdbeaf3940 remodel whole logger 2025-04-16 09:23:20 +02:00
5 changed files with 47 additions and 78 deletions
+5 -2
View File
@@ -1,7 +1,10 @@
module github.com/tecamino/tecamino-logger module gitea.tecamino.local/paadi/tecamino-logger
go 1.21.0 go 1.21.0
require go.uber.org/zap v1.27.0 require (
go.uber.org/zap v1.27.0
gopkg.in/natefinch/lumberjack.v2 v2.2.1
)
require go.uber.org/multierr v1.10.0 // indirect require go.uber.org/multierr v1.10.0 // indirect
+2
View File
@@ -10,5 +10,7 @@ go.uber.org/multierr v1.10.0 h1:S0h4aNzvfcFsC3dRF1jLoaov7oRaKqRGC/pUEJ2yvPQ=
go.uber.org/multierr v1.10.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= go.uber.org/multierr v1.10.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8=
go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E=
gopkg.in/natefinch/lumberjack.v2 v2.2.1 h1:bBRl1b0OH9s/DuPhuXpNl+VtCaJXFZ5/uEFST95x9zc=
gopkg.in/natefinch/lumberjack.v2 v2.2.1/go.mod h1:YD8tP3GAjkrDg1eZH7EGmyESg/lsYskCTPBJVb9jqSc=
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
-62
View File
@@ -1,62 +0,0 @@
package logger
import (
"fmt"
"os"
"time"
"go.uber.org/zap"
"go.uber.org/zap/zapcore"
)
type Level zapcore.Level
const (
Info Level = 0
Warning Level = 1
Error Level = 2
Debug Level = -1
)
type Logger struct {
log *zap.Logger
debug *zap.Logger
}
func NewLogger(name string) (*Logger, error) {
if name == "" {
name = "NewLogger"
}
file, err := os.OpenFile(fmt.Sprintf("%s.log", name), os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
if err != nil {
return nil, err
}
encoderConfig := zap.NewProductionEncoderConfig()
encoderConfig.TimeKey = "timestamp"
encoderConfig.EncodeTime = func(t time.Time, enc zapcore.PrimitiveArrayEncoder) {
enc.AppendString(t.Format("2006-01-02T15:04:05.000"))
}
encoder := zapcore.NewJSONEncoder(encoderConfig)
// Build the logger
return &Logger{
log: zap.New(zapcore.NewCore(encoder, zapcore.AddSync(file), zapcore.InfoLevel)),
debug: zap.New(zapcore.NewCore(encoder, zapcore.AddSync(file), zapcore.DebugLevel)),
},
nil
}
func (l *Logger) Log(logLevel Level, caller, msg string) {
switch logLevel {
case Info:
l.log.Info(msg, zap.String("caller", caller))
case Warning:
l.log.Warn(msg, zap.String("caller", caller))
case Error:
l.log.Error(msg, zap.String("caller", caller))
case Debug:
l.debug.Debug(msg, zap.String("caller", caller))
}
}
+40
View File
@@ -0,0 +1,40 @@
package tecaminologger
import (
"errors"
"os"
"testing"
)
func TestLogger(t *testing.T) {
t.Log("start logger test")
logFile := "Test.log"
log, err := NewLogger(logFile, nil)
if err != nil {
t.Fatal(err)
}
log.Info("line 10", "hallo")
log.Warning("line 11", "vello")
log.Error("line 12", "hie")
err = errors.New("test error")
log.Error("line 14", err)
log.Debug("line 15", "isch")
t.Log("read created log file")
f, err := os.ReadFile(logFile)
if err != nil {
t.Fatal(err)
}
t.Log("read created log file")
t.Log(string(f))
t.Log("test if log file name empty")
log, err = NewLogger("", nil)
if err != nil {
t.Fatal(err)
}
log.Info("test", "this is a text")
}
-14
View File
@@ -1,14 +0,0 @@
package main
import "github.com/tecamino/tecamino-logger/logger"
func main() {
log, err := logger.NewLogger("Test")
if err != nil {
panic(err)
}
log.Log(logger.Info, "line 10", "hallo")
log.Log(logger.Warning, "line 11", "vello")
log.Log(logger.Error, "line 12", "hie")
log.Log(logger.Debug, "line 13", "isch")
}