corpus

Log | Files | Refs | README | LICENSE

commit 95c2aa378492977c669ba62b5ea07d6e872a2387
parent 98e5070357c38812b1c8c35a5cbc3efd51104994
Author: mtmn <miro@haravara.org>
Date:   Mon, 13 Apr 2026 14:37:19 +0200

feat: improve logging

Diffstat:
M.gitignore | 4++--
Msrc/Log.purs | 7++++---
Msrc/Main.purs | 11++++++-----
Msrc/S3.js | 14++++++++++++--
4 files changed, 24 insertions(+), 12 deletions(-)

diff --git a/.gitignore b/.gitignore @@ -17,6 +17,6 @@ result-* server.js client.js server.log -scrobbler.db* -scorpus.db* +*.db.wal +*.db .devenv diff --git a/src/Log.purs b/src/Log.purs @@ -57,9 +57,10 @@ logger :: Logger Effect LogMessage logger = Logger \{ level, message } -> do now <- nowDateTime let ts = formatTimestamp now - let sanitized = replaceAll (Pattern "\r\n") (Replacement " ") message - # replaceAll (Pattern "\n") (Replacement " ") - # replaceAll (Pattern "\r") (Replacement " ") + let + sanitized = replaceAll (Pattern "\r\n") (Replacement " ") message + # replaceAll (Pattern "\n") (Replacement " ") + # replaceAll (Pattern "\r") (Replacement " ") Console.log $ "[" <> ts <> "] [" <> show level <> "] " <> sanitized debug :: forall m. MonadEffect m => String -> m Unit diff --git a/src/Main.purs b/src/Main.purs @@ -196,8 +196,9 @@ lbSyncOnce conn username isSyncing initialSyncEnabled = do run conn "BEGIN TRANSACTION" [] Tuple added (Tuple minTs hitCount) <- processListens listens run conn "COMMIT" [] - when (added > 0 || initialSyncEnabled) $ - Log.info $ "ListenBrainz batch: added " <> show added <> ", " <> show hitCount <> " already present." + when (added > 0 || initialSyncEnabled) + $ Log.info + $ "ListenBrainz batch: added " <> show added <> ", " <> show hitCount <> " already present." let allExist = hitCount == length listens && length listens > 0 if allExist || length listens == 0 || not initialSyncEnabled then do when (added > 0) $ Log.info $ "ListenBrainz sync complete. Added " <> show added <> " new scrobbles." @@ -265,8 +266,9 @@ lfSyncOnce conn apiKey lfmUser isSyncing initialSyncEnabled = do run conn "BEGIN TRANSACTION" [] Tuple added hitCount <- processLastfmTracks tracks run conn "COMMIT" [] - when (added > 0 || initialSyncEnabled) $ - Log.info $ "Last.fm page 1/" <> show totalPages <> ": added " <> show added <> ", " <> show hitCount <> " already present." + when (added > 0 || initialSyncEnabled) + $ Log.info + $ "Last.fm page 1/" <> show totalPages <> ": added " <> show added <> ", " <> show hitCount <> " already present." let validTracks = mapMaybe lastfmTrackToListen tracks allExist = hitCount == length validTracks && length validTracks > 0 @@ -1263,5 +1265,4 @@ main = do coverCacheEnabled = getEnvBool env "COVER_CACHE_ENABLED" true initialSyncEnabled = getEnvBool env "INITIAL_SYNC" false - when (username == "") $ Log.warn "LISTENBRAINZ_USER is not set — ListenBrainz syncing will be disabled" startServer port dbFile username backupEnabled backupIntervalMs coverCacheEnabled initialSyncEnabled diff --git a/src/S3.js b/src/S3.js @@ -31,7 +31,12 @@ export const uploadToS3Impl = cb(null)(); }) .catch((err) => { - console.error(`S3: Upload failed for ${key}`, err); + const msg = + `S3: Upload failed for ${key} ${err.message || err}`.replace( + /\n/g, + " ", + ); + console.error(msg); cb(err)(); }); }; @@ -50,7 +55,12 @@ export const existsInS3Impl = (key) => (cb) => () => { if (err.name === "NotFound" || err.$metadata?.httpStatusCode === 404) { cb(false)(); } else { - console.error(`S3: exists check failed for ${key}`, err); + const msg = + `S3: exists check failed for ${key} ${err.message || err}`.replace( + /\n/g, + " ", + ); + console.error(msg); cb(false)(); } });