Log Text instead of String
This commit is contained in:
@@ -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
@@ -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
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user