packages feed

fast-logger 2.4.4 → 2.4.5

raw patch · 3 files changed

+18/−18 lines, 3 filesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

- System.Log.FastLogger: LogFileAutoRotate :: FileLogSpec -> BufSize -> LogType
+ System.Log.FastLogger: LogFileNoRotate :: FilePath -> BufSize -> LogType
- System.Log.FastLogger: LogFile :: FilePath -> BufSize -> LogType
+ System.Log.FastLogger: LogFile :: FileLogSpec -> BufSize -> LogType
- System.Log.FastLogger: newTimedFastLogger :: (IO FormattedTime) -> LogType -> IO (TimedFastLogger, IO ())
+ System.Log.FastLogger: newTimedFastLogger :: IO FormattedTime -> LogType -> IO (TimedFastLogger, IO ())
- System.Log.FastLogger: withFastLogger :: LogType -> (FastLogger -> IO a) -> IO ()
+ System.Log.FastLogger: withFastLogger :: LogType -> (FastLogger -> IO a) -> IO a
- System.Log.FastLogger: withTimedFastLogger :: (IO FormattedTime) -> LogType -> (TimedFastLogger -> IO a) -> IO ()
+ System.Log.FastLogger: withTimedFastLogger :: (IO FormattedTime) -> LogType -> (TimedFastLogger -> IO a) -> IO a

Files

System/Log/FastLogger.hs view
@@ -180,10 +180,11 @@     | LogStderr BufSize           -- ^ Logging to stdout.                                   --   'BufSize' is a buffer size                                   --   for each capability.-    | LogFile FilePath BufSize    -- ^ Logging to a file.+    | LogFileNoRotate FilePath BufSize+                                  -- ^ Logging to a file.                                   --   'BufSize' is a buffer size                                   --   for each capability.-    | LogFileAutoRotate FileLogSpec BufSize -- ^ Logging to a file.+    | LogFile FileLogSpec BufSize -- ^ Logging to a file.                                   --   'BufSize' is a buffer size                                   --   for each capability.                                   --   File rotation is done on-demand.@@ -197,11 +198,12 @@     LogNone         -> return (const noOp, noOp)     LogStdout bsize -> newStdoutLoggerSet bsize >>= stdLoggerInit     LogStderr bsize -> newStderrLoggerSet bsize >>= stdLoggerInit-    LogFile fp bsize ->  newFileLoggerSet bsize fp >>= stdLoggerInit-    LogFileAutoRotate fspec bsize -> rotateLoggerInit fspec bsize+    LogFileNoRotate fp bsize ->  newFileLoggerSet bsize fp >>= fileLoggerInit+    LogFile fspec bsize -> rotateLoggerInit fspec bsize     LogCallback cb flush -> return (\ str -> cb str >> flush, noOp )   where     stdLoggerInit lgrset = return (pushLogStr lgrset, noOp)+    fileLoggerInit lgrset = return (pushLogStr lgrset, rmLoggerSet lgrset)     rotateLoggerInit fspec bsize = do         lgrset <- newFileLoggerSet bsize $ log_file fspec         ref <- newIORef (0 :: Int)@@ -213,24 +215,25 @@         return (logger, rmLoggerSet lgrset)  -- | 'bracket' version of 'newFastLogger'-withFastLogger :: LogType -> (FastLogger -> IO a) -> IO ()-withFastLogger typ log' = bracket (newFastLogger typ) (log' . fst) snd+withFastLogger :: LogType -> (FastLogger -> IO a) -> IO a+withFastLogger typ log' = bracket (newFastLogger typ) snd (log' . fst)  -- | Initialize a 'FastLogger' with timestamp attached to each message. -- a tuple of logger and clean up action are returned. newTimedFastLogger ::-    (IO FormattedTime)    -- ^ How do we get 'FormattedTime'?-                          -- "System.Log.FastLogger.Date" provide cached formatted time.+    IO FormattedTime    -- ^ How do we get 'FormattedTime'?+                        -- "System.Log.FastLogger.Date" provide cached formatted time.     -> LogType -> IO (TimedFastLogger, IO ()) newTimedFastLogger tgetter typ = case typ of     LogNone -> return (const noOp, noOp)     LogStdout bsize -> newStdoutLoggerSet bsize >>= stdLoggerInit     LogStderr bsize -> newStderrLoggerSet bsize >>= stdLoggerInit-    LogFile fp bsize ->  newFileLoggerSet bsize fp >>= stdLoggerInit-    LogFileAutoRotate fspec bsize -> rotateLoggerInit fspec bsize+    LogFileNoRotate fp bsize ->  newFileLoggerSet bsize fp >>= fileLoggerInit+    LogFile fspec bsize -> rotateLoggerInit fspec bsize     LogCallback cb flush -> return (\ f -> tgetter >>= cb . f >> flush, noOp )   where     stdLoggerInit lgrset = return ( \f -> tgetter >>= pushLogStr lgrset . f, noOp)+    fileLoggerInit lgrset = return (\f -> tgetter >>= pushLogStr lgrset . f, rmLoggerSet lgrset)     rotateLoggerInit fspec bsize = do         lgrset <- newFileLoggerSet bsize $ log_file fspec         ref <- newIORef (0 :: Int)@@ -243,8 +246,8 @@         return (logger, rmLoggerSet lgrset)  -- | 'bracket' version of 'newTimeFastLogger'-withTimedFastLogger :: (IO FormattedTime) -> LogType -> (TimedFastLogger -> IO a) -> IO ()-withTimedFastLogger tgetter typ log' = bracket (newTimedFastLogger tgetter typ) (log' . fst) snd+withTimedFastLogger :: (IO FormattedTime) -> LogType -> (TimedFastLogger -> IO a) -> IO a+withTimedFastLogger tgetter typ log' = bracket (newTimedFastLogger tgetter typ) snd (log' . fst)  ---------------------------------------------------------------- @@ -273,15 +276,13 @@                     rotate spec                     renewLoggerSet lgrset                     writeIORef ref $ estimate limit-                | otherwise -> do+                | otherwise ->                     writeIORef ref $ estimate (limit - siz)     file = log_file spec     limit = log_file_size spec-    getSize = handle (\(SomeException _) -> return Nothing) $ do+    getSize = handle (\(SomeException _) -> return Nothing) $         -- The log file is locked by GHC.         -- We need to get its file size by the way not using locks.         Just . fromIntegral <$> getFileSize file     -- 200 is an ad-hoc value for the length of log line.     estimate x = fromInteger (x `div` 200)--
System/Log/FastLogger/File.hs view
@@ -40,4 +40,3 @@     move (src,dst) = do         exist <- doesFileExist src         when exist $ renameFile src dst-
fast-logger.cabal view
@@ -1,5 +1,5 @@ Name:                   fast-logger-Version:                2.4.4+Version:                2.4.5 Author:                 Kazu Yamamoto <kazu@iij.ad.jp> Maintainer:             Kazu Yamamoto <kazu@iij.ad.jp> License:                BSD3