diff --git a/main.go b/main.go index 8e505c2..174878f 100644 --- a/main.go +++ b/main.go @@ -369,25 +369,31 @@ func main() { func HandleSpecialArgs(args []string, db utils.DB) (bool, error) { handleSpecialArgsLogger := logger.Default.WithPrefix("HandleSpecialArgs") handleSpecialArgsLogger.Debug("Handling special arguments: %v", args) + if len(args) == 0 { + handleSpecialArgsLogger.Warning("No arguments provided to HandleSpecialArgs") + return false, nil + } switch args[0] { case "reset": - handleSpecialArgsLogger.Info("Resetting all files") + handleSpecialArgsLogger.Info("Resetting all files to their original state from database") err := utils.ResetAllFiles(db) if err != nil { handleSpecialArgsLogger.Error("Failed to reset all files: %v", err) return true, err } - handleSpecialArgsLogger.Info("All files reset") + handleSpecialArgsLogger.Info("Successfully reset all files to original state") return true, nil case "dump": - handleSpecialArgsLogger.Info("Dumping all files from database") + handleSpecialArgsLogger.Info("Dumping all files from database (clearing snapshots)") err := db.RemoveAllFiles() if err != nil { handleSpecialArgsLogger.Error("Failed to remove all files from database: %v", err) return true, err } - handleSpecialArgsLogger.Info("All files removed from database") + handleSpecialArgsLogger.Info("Successfully cleared all file snapshots from database") return true, nil + default: + handleSpecialArgsLogger.Debug("Unknown special argument: %q", args[0]) } handleSpecialArgsLogger.Debug("No special arguments handled, returning false") return false, nil diff --git a/utils/db.go b/utils/db.go index f68e5e5..cc54368 100644 --- a/utils/db.go +++ b/utils/db.go @@ -42,24 +42,25 @@ func GetDB() (DB, error) { dbFile := filepath.Join("data.sqlite") getDBLogger.Debug("Opening database file: %q", dbFile) + getDBLogger.Trace("Database configuration: PrepareStmt=true, GORM logger=Silent") db, err := gorm.Open(sqlite.Open(dbFile), &gorm.Config{ // SkipDefaultTransaction: true, PrepareStmt: true, Logger: gormlogger.Default.LogMode(gormlogger.Silent), }) if err != nil { - getDBLogger.Error("Failed to open database: %v", err) + getDBLogger.Error("Failed to open database file %q: %v", dbFile, err) return nil, err } - getDBLogger.Debug("Database opened successfully, running auto migration") + getDBLogger.Debug("Database opened successfully, running auto migration for FileSnapshot model") if err := db.AutoMigrate(&FileSnapshot{}); err != nil { - getDBLogger.Error("Auto migration failed: %v", err) + getDBLogger.Error("Auto migration failed for FileSnapshot model: %v", err) return nil, err } - getDBLogger.Debug("Auto migration completed") + getDBLogger.Info("Database initialized and migrated successfully") globalDB = &DBWrapper{db: db} - getDBLogger.Debug("Database wrapper initialized") + getDBLogger.Debug("Database wrapper initialized and cached globally") return globalDB, nil } @@ -89,7 +90,7 @@ func (db *DBWrapper) FileExists(filePath string) (bool, error) { } func (db *DBWrapper) SaveFile(filePath string, fileData []byte) error { - saveFileLogger := dbLogger.WithPrefix("SaveFile").WithField("filePath", filePath) + saveFileLogger := dbLogger.WithPrefix("SaveFile").WithField("filePath", filePath).WithField("dataSize", len(fileData)) saveFileLogger.Debug("Attempting to save file to database") saveFileLogger.Trace("File data length: %d", len(fileData)) @@ -99,7 +100,7 @@ func (db *DBWrapper) SaveFile(filePath string, fileData []byte) error { return err } if exists { - saveFileLogger.Debug("File already exists, skipping save") + saveFileLogger.Debug("File already exists in database, skipping save to avoid overwriting original snapshot") return nil } saveFileLogger.Debug("Creating new file snapshot in database") @@ -111,7 +112,7 @@ func (db *DBWrapper) SaveFile(filePath string, fileData []byte) error { if err != nil { saveFileLogger.Error("Failed to create file snapshot: %v", err) } else { - saveFileLogger.Debug("File saved successfully to database") + saveFileLogger.Info("File successfully saved to database") } return err } diff --git a/utils/flags.go b/utils/flags.go index d11f761..41ba760 100644 --- a/utils/flags.go +++ b/utils/flags.go @@ -16,6 +16,7 @@ var ( ) func init() { - flagsLogger.Debug("Initializing flags") - flagsLogger.Trace("ParallelFiles initial value: %d, Filter initial value: %q, JSON initial value: %t", *ParallelFiles, *Filter, *JSON) + flagsLogger.Debug("Initializing command-line flags") + flagsLogger.Trace("Initial flag values - ParallelFiles: %d, Filter: %q, JSON: %t", *ParallelFiles, *Filter, *JSON) + flagsLogger.Debug("Flag definitions: -P (parallel files), -f (filter), -json (JSON mode)") }