Add logs route, add rar handler
This commit is contained in:
@@ -9,8 +9,8 @@ import (
|
||||
"time"
|
||||
|
||||
"github.com/debridmediamanager/zurg/internal/config"
|
||||
"github.com/debridmediamanager/zurg/pkg/logutil"
|
||||
cmap "github.com/orcaman/concurrent-map/v2"
|
||||
"go.uber.org/zap"
|
||||
)
|
||||
|
||||
const (
|
||||
@@ -25,10 +25,10 @@ type HTTPClient struct {
|
||||
bearerToken string
|
||||
cfg config.ConfigInterface
|
||||
ipv6 cmap.ConcurrentMap[string, string]
|
||||
log *zap.SugaredLogger
|
||||
log *logutil.Logger
|
||||
}
|
||||
|
||||
func NewHTTPClient(token string, maxRetries int, timeoutSecs int, cfg config.ConfigInterface, log *zap.SugaredLogger) *HTTPClient {
|
||||
func NewHTTPClient(token string, maxRetries int, timeoutSecs int, cfg config.ConfigInterface, log *logutil.Logger) *HTTPClient {
|
||||
client := HTTPClient{
|
||||
bearerToken: token,
|
||||
client: &http.Client{
|
||||
|
||||
@@ -1,13 +1,24 @@
|
||||
package logutil
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"fmt"
|
||||
"io"
|
||||
"os"
|
||||
|
||||
"go.uber.org/zap"
|
||||
"go.uber.org/zap/zapcore"
|
||||
)
|
||||
|
||||
func NewLogger() *zap.SugaredLogger {
|
||||
zapConfig := zap.NewDevelopmentConfig()
|
||||
zapConfig.EncoderConfig = zapcore.EncoderConfig{
|
||||
type Logger struct {
|
||||
*zap.SugaredLogger
|
||||
logPath string
|
||||
}
|
||||
|
||||
func NewLogger(logPath string) *Logger {
|
||||
zapCfg := zap.NewDevelopmentConfig()
|
||||
|
||||
consoleCfg := zapcore.EncoderConfig{
|
||||
TimeKey: "time",
|
||||
LevelKey: "level",
|
||||
NameKey: "logger",
|
||||
@@ -19,9 +30,63 @@ func NewLogger() *zap.SugaredLogger {
|
||||
EncodeTime: zapcore.ISO8601TimeEncoder,
|
||||
EncodeDuration: zapcore.StringDurationEncoder,
|
||||
}
|
||||
logger, _ := zapConfig.Build()
|
||||
defer logger.Sync()
|
||||
consoleEncoder := zapcore.NewConsoleEncoder(consoleCfg)
|
||||
|
||||
fileCfg := zapcore.EncoderConfig{
|
||||
TimeKey: "time",
|
||||
LevelKey: "level",
|
||||
NameKey: "logger",
|
||||
MessageKey: "msg",
|
||||
CallerKey: "",
|
||||
StacktraceKey: "",
|
||||
LineEnding: zapcore.DefaultLineEnding,
|
||||
EncodeTime: zapcore.ISO8601TimeEncoder,
|
||||
EncodeDuration: zapcore.StringDurationEncoder,
|
||||
}
|
||||
fileEncoder := zapcore.NewConsoleEncoder(fileCfg)
|
||||
// Set up file logging with overwrite mode
|
||||
logFile, err := os.OpenFile(logPath, os.O_CREATE|os.O_WRONLY|os.O_TRUNC, 0644)
|
||||
if err != nil {
|
||||
panic("cannot open log file: " + err.Error())
|
||||
}
|
||||
fmt.Println("Logging to", logPath)
|
||||
|
||||
core := zapcore.NewTee(
|
||||
zapcore.NewCore(consoleEncoder, zapcore.AddSync(os.Stdout), zapCfg.Level),
|
||||
zapcore.NewCore(fileEncoder, zapcore.AddSync(logFile), zapCfg.Level),
|
||||
)
|
||||
|
||||
logger := zap.New(core, zap.AddCaller(), zap.Development())
|
||||
defer logger.Sync() // flushes buffer, if any
|
||||
sugar := logger.Sugar()
|
||||
|
||||
return sugar
|
||||
zLogger := &Logger{
|
||||
SugaredLogger: sugar,
|
||||
logPath: logPath,
|
||||
}
|
||||
|
||||
return zLogger
|
||||
}
|
||||
|
||||
func (l *Logger) Named(name string) *Logger {
|
||||
return &Logger{
|
||||
SugaredLogger: l.SugaredLogger.Named(name),
|
||||
logPath: l.logPath,
|
||||
}
|
||||
}
|
||||
|
||||
func (l *Logger) GetLogsFromFile() (string, error) {
|
||||
file, err := os.Open(l.logPath)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
defer file.Close()
|
||||
|
||||
var buffer bytes.Buffer
|
||||
_, err = io.Copy(&buffer, file)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
return buffer.String(), nil
|
||||
}
|
||||
|
||||
@@ -10,15 +10,15 @@ import (
|
||||
"strings"
|
||||
|
||||
zurghttp "github.com/debridmediamanager/zurg/pkg/http"
|
||||
"go.uber.org/zap"
|
||||
"github.com/debridmediamanager/zurg/pkg/logutil"
|
||||
)
|
||||
|
||||
type RealDebrid struct {
|
||||
log *zap.SugaredLogger
|
||||
log *logutil.Logger
|
||||
client *zurghttp.HTTPClient
|
||||
}
|
||||
|
||||
func NewRealDebrid(client *zurghttp.HTTPClient, log *zap.SugaredLogger) *RealDebrid {
|
||||
func NewRealDebrid(client *zurghttp.HTTPClient, log *logutil.Logger) *RealDebrid {
|
||||
return &RealDebrid{
|
||||
log: log,
|
||||
client: client,
|
||||
|
||||
Reference in New Issue
Block a user