refactor: redesign logging system for CLI-friendly output (#561)

* refactor: redesign logging system for CLI-friendly output
* refactor: remove ANSI color support from logger
* fix: address PR review feedback
This commit is contained in:
Roger
2026-04-07 16:50:01 +08:00
committed by GitHub
parent a0b4412bf2
commit 5f42d4fe5f
13 changed files with 287 additions and 199 deletions
+10 -2
View File
@@ -60,11 +60,20 @@ func (o *Writer) Write() error {
if err := os.MkdirAll(o.dir, 0o750); err != nil {
return fmt.Errorf("create output dir: %w", err)
}
for _, cs := range o.aggregate() {
agg := o.aggregate()
for _, cs := range agg {
if err := o.writeFile(cs.name, cs.rows); err != nil {
return err
}
}
if len(agg) > 0 {
fmt.Fprintln(os.Stderr)
log.Infof("Exported to %s/", o.dir)
for _, cs := range agg {
filename := fmt.Sprintf("%s.%s", cs.name, o.formatter.ext())
log.Infof(" %-24s %d entries", filename, len(cs.rows))
}
}
return nil
}
@@ -155,6 +164,5 @@ func (o *Writer) writeFile(category string, rows []row) (err error) {
if _, err := f.Write(buf.Bytes()); err != nil {
return fmt.Errorf("write %s: %w", filename, err)
}
log.Warnf("export: %s", path)
return nil
}