Log Text instead of String

This commit is contained in:
Paul Brinkmeier
2026-09-15 18:35:55 +02:00
parent ad348e2c60
commit de08373d2d
3 changed files with 10 additions and 5 deletions
-1
View File
@@ -47,5 +47,4 @@ By setting `$BASE_DIR` you can persist the database for later runs.
- [x] Test leap second handling in the `time` package - [x] Test leap second handling in the `time` package
- [x] Fix container shutdown delay - [x] Fix container shutdown delay
- [ ] Fix `responseFile` always returning 200 - [ ] Fix `responseFile` always returning 200
- [ ] use queue to sync logging of indexer and main thread
- [x] Vendor PDF.js for consistent cross-platform PDF rendering - [x] Vendor PDF.js for consistent cross-platform PDF rendering
+1 -2
View File
@@ -65,7 +65,6 @@ import Yore.Time (addYears, getCurrentDay, getSecondsUntilMidnight)
import Data.Fixed (Pico) import Data.Fixed (Pico)
import Data.Time.Clock.POSIX (getPOSIXTime) import Data.Time.Clock.POSIX (getPOSIXTime)
import qualified Envy import qualified Envy
import System.IO (BufferMode (..), hSetBuffering, stdout)
import qualified Yore.DB as DB import qualified Yore.DB as DB
import qualified Yore.Log as Log import qualified Yore.Log as Log
@@ -83,7 +82,7 @@ deriving instance Show Config
main :: IO () main :: IO ()
main = do main = do
hSetBuffering stdout NoBuffering Log.setup
cfg <- cfg <-
Envy.load @ConfigT >>= \case Envy.load @ConfigT >>= \case
+9 -2
View File
@@ -1,11 +1,18 @@
module Yore.Log (Yore.Log.error, info) where module Yore.Log (Yore.Log.error, info, setup) where
import Control.Monad.IO.Class (MonadIO (..)) import Control.Monad.IO.Class (MonadIO (..))
import Data.Time (ZonedTime, getZonedTime) import Data.Time (ZonedTime, getZonedTime)
import Data.Time.Format (defaultTimeLocale, formatTime) import Data.Time.Format (defaultTimeLocale, formatTime)
import GHC.Stack (HasCallStack, SrcLoc (..), callStack, getCallStack) import GHC.Stack (HasCallStack, SrcLoc (..), callStack, getCallStack)
import System.IO (BufferMode (..), hSetBuffering, stdout)
import Text.Printf (printf) import Text.Printf (printf)
import qualified Data.Text as Text
import qualified Data.Text.IO as TextIO
setup :: IO ()
setup = hSetBuffering stdout LineBuffering
info :: (HasCallStack, MonadIO m) => String -> m () info :: (HasCallStack, MonadIO m) => String -> m ()
info = doLog "INF" info = doLog "INF"
@@ -16,7 +23,7 @@ doLog :: (HasCallStack, MonadIO m) => String -> String -> m ()
doLog level msg = liftIO $ do doLog level msg = liftIO $ do
now <- getZonedTime now <- getZonedTime
let location = getLocation $ getCallStack callStack let location = getLocation $ getCallStack callStack
printf "(%s) (%s) (%s) %s\n" (iso8601Show now) level location msg TextIO.putStrLn $ Text.pack $ printf "(%s) (%s) (%s) %s" (iso8601Show now) level location msg
where where
getLocation :: [(String, SrcLoc)] -> String getLocation :: [(String, SrcLoc)] -> String
-- First entry is always a function from this module, skip it -- First entry is always a function from this module, skip it