Skip to content

Commit

Permalink
add log level Debug
Browse files Browse the repository at this point in the history
  • Loading branch information
laaqxdze1k committed Aug 30, 2023
1 parent c54cebe commit 73787e1
Show file tree
Hide file tree
Showing 5 changed files with 58 additions and 13 deletions.
1 change: 1 addition & 0 deletions cmdupload/upload.go
Original file line number Diff line number Diff line change
Expand Up @@ -163,6 +163,7 @@ assetLoop:
}

func (app *UpCmd) handleAsset(ctx context.Context, a *assets.LocalAssetFile) error {
app.logger.DebugObject("handleAsset: LocalAssetFile=", a)
showCount := true
defer func() {
a.Close()
Expand Down
3 changes: 3 additions & 0 deletions immich/assets/googlephotos.go
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,9 @@ func (fsys *GooglePhotosAssetBrowser) Browse(ctx context.Context) chan *LocalAss
}

func (fsys *GooglePhotosAssetBrowser) ResolveName(la *LocalAssetFile) (string, error) {
if la.isNotResolvable {
return "not resolved", fmt.Errorf("%s: %w", la.Title, os.ErrNotExist)
}
if la.isResolved {
return la.FileName, nil
}
Expand Down
39 changes: 28 additions & 11 deletions immich/assets/localfile.go
Original file line number Diff line number Diff line change
Expand Up @@ -49,9 +49,10 @@ type LocalAssetFile struct {
FSys fs.FS // Asset's file system

// Unexported fields
isResolved bool // True when the FileName is resolved, for google photos
fInfo fs.FileInfo
size int // Accessible via Stat()
isResolved bool // True when the FileName is resolved, for google photos
isNotResolvable bool // When the name resolution has failed
fInfo fs.FileInfo
size int // Accessible via Stat()

// dateTaken time.Time // Accessible via DateTaken()
// dateAlreadyRead bool // true when the date has been read
Expand Down Expand Up @@ -125,32 +126,46 @@ func (l *LocalAssetFile) IsDir() bool { return false }

func (l *LocalAssetFile) resolve() error {
var err error
if l.isNotResolvable {
return os.ErrNotExist
}
if l.isResolved {
return nil
}
if fsys, ok := l.FSys.(NameResolver); ok && !l.isResolved {
l.FileName, err = fsys.ResolveName(l)
if err != nil {
l.isNotResolvable = true
return err
}
}
l.fInfo, err = fs.Stat(l.FSys, l.FileName)
if err != nil {
l.isNotResolvable = true
return err
}
l.isResolved = true
return nil
}

func (l *LocalAssetFile) Name() string {
l.resolve()
return l.FileName
if l.resolve() == nil {
return l.FileName
}
return "name not resolved"
}
func (l *LocalAssetFile) Size() int64 {
l.resolve()
return l.fInfo.Size()
if l.resolve() != nil {
return l.fInfo.Size()
}
return 0
}
func (l *LocalAssetFile) Mode() fs.FileMode { return 0 }
func (l *LocalAssetFile) ModTime() time.Time {
l.resolve()
return l.fInfo.ModTime()
if err := l.resolve(); err == nil {
return l.fInfo.ModTime()
}
return time.Time{}
}
func (l *LocalAssetFile) Sys() any { return nil }

Expand Down Expand Up @@ -197,6 +212,8 @@ func (l *LocalAssetFile) Remove() error {
}

func (l *LocalAssetFile) DeviceAssetID() string {
l.resolve()
return fmt.Sprintf("%s-%d", path.Base(l.Title), l.Size())
if err := l.resolve(); err == nil {
return fmt.Sprintf("%s-%d", path.Base(l.Title), l.Size())
}
return "Not resolved"
}
26 changes: 25 additions & 1 deletion immich/logger/logger.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package logger

import (
"bytes"
"encoding/json"
"fmt"
"strings"

Expand All @@ -15,6 +17,7 @@ const (
Warning
OK
Info
Debug
)

func (l Level) String() string {
Expand All @@ -29,14 +32,16 @@ func (l Level) String() string {
return "OK"
case Info:
return "Info"
case Debug:
return "Debug"
default:
return fmt.Sprintf("Log Level %d", l)
}
}

func StringToLevel(s string) (Level, error) {
s = strings.ToLower(s)
for l := Fatal; l <= Info; l++ {
for l := Fatal; l <= Debug; l++ {
if strings.ToLower(l.String()) == s {
return l, nil
}
Expand All @@ -50,6 +55,7 @@ var colorLevel = map[Level]string{
Warning: chalk.Yellow.String(),
OK: chalk.Green.String(),
Info: chalk.White.String(),
Debug: chalk.Cyan.String(),
}

type Logger struct {
Expand All @@ -73,6 +79,24 @@ func NewLogger(DisplayLevel Level, noColors bool) *Logger {
return &l
}

func (l *Logger) Debug(f string, v ...any) {
l.Message(Debug, f, v...)
}

func (l *Logger) DebugObject(name string, v any) {
if Debug > l.displayLevel {
return
}
b := bytes.NewBuffer(nil)
enc := json.NewEncoder(b)
enc.SetIndent("", " ")
err := enc.Encode(v)
if err != nil {
l.Error("can't display object %s: %s", name, err)
return
}
l.Message(Debug, "%s:\n%s", name, b.String())
}
func (l *Logger) Info(f string, v ...any) {
l.Message(Info, f, v...)
}
Expand Down
2 changes: 1 addition & 1 deletion main.go
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ func Run(ctx context.Context, log *logger.Logger) (*logger.Logger, error) {
flag.StringVar(&app.Key, "key", "", "API Key")
flag.StringVar(&app.DeviceUUID, "device-uuid", deviceID, "Set a device UUID")
flag.BoolVar(&app.NoLogColors, "no-colors-log", false, "Disable colors on logs")
flag.StringVar(&app.LogLevel, "log-level", "ok", "Log level (Error|Warning|OK|Info), default OK")
flag.StringVar(&app.LogLevel, "log-level", "ok", "Log level (Error|Warning|OK|Info|Debug), default OK")
flag.BoolVar(&app.ApiTrace, "api-trace", false, "enable api call traces")
flag.Parse()
if len(app.EndPoint) == 0 {
Expand Down

0 comments on commit 73787e1

Please sign in to comment.