fast-logger 2.4.17 → 3.0.0
raw patch · 3 files changed
+38/−14 lines, 3 filesdep ~basePVP ok
version bump matches the API change (PVP)
Dependency ranges changed: base
API changes (from Hackage documentation)
- System.Log.FastLogger: LogCallback :: (LogStr -> IO ()) -> IO () -> LogType
- System.Log.FastLogger: LogFile :: FileLogSpec -> BufSize -> LogType
- System.Log.FastLogger: LogFileNoRotate :: FilePath -> BufSize -> LogType
- System.Log.FastLogger: LogFileTimedRotate :: TimedFileLogSpec -> BufSize -> LogType
- System.Log.FastLogger: LogNone :: LogType
- System.Log.FastLogger: LogStderr :: BufSize -> LogType
- System.Log.FastLogger: LogStdout :: BufSize -> LogType
- System.Log.FastLogger: data LogType
+ System.Log.FastLogger: [LogCallback] :: (v -> IO ()) -> IO () -> LogType' v
+ System.Log.FastLogger: [LogFileNoRotate] :: FilePath -> BufSize -> LogType' LogStr
+ System.Log.FastLogger: [LogFileTimedRotate] :: TimedFileLogSpec -> BufSize -> LogType' LogStr
+ System.Log.FastLogger: [LogFile] :: FileLogSpec -> BufSize -> LogType' LogStr
+ System.Log.FastLogger: [LogNone] :: LogType' LogStr
+ System.Log.FastLogger: [LogStderr] :: BufSize -> LogType' LogStr
+ System.Log.FastLogger: [LogStdout] :: BufSize -> LogType' LogStr
+ System.Log.FastLogger: data LogType' a
+ System.Log.FastLogger: type LogType = LogType' LogStr
- System.Log.FastLogger: newFastLogger :: LogType -> IO (FastLogger, IO ())
+ System.Log.FastLogger: newFastLogger :: LogType' v -> IO (v -> IO (), IO ())
Files
- ChangeLog.md +18/−0
- System/Log/FastLogger.hs +18/−12
- fast-logger.cabal +2/−2
ChangeLog.md view
@@ -1,3 +1,21 @@+## 3.0.0++* Allowing the callback logger to be generic. [#182](https://github.com/kazu-yamamoto/logger/pull/180) This is a BREAKING CHANGE. Users should do:+ 1. Importing `LogType'` and related constructors because `LogType` is now a type alias.+ 2. Using `{-# LANGUAGE GADTs #-}`, even if you aren't using anything new, any time you try and `case` over values of type `LogType'`.++## 2.4.17++* Obtaining a fresh fd from IORef just before writing. [#180](https://github.com/kazu-yamamoto/logger/pull/180)++## 2.4.16++* Using strict language extensions.++## 2.4.15++* Rescuing GHC 7.8.+ ## 2.4.14 * Add `ToLogStr` instances for the following types: signed integers, unsigned integers, floating-point numbers. These instances all use decimal encodings. [#177](https://github.com/kazu-yamamoto/logger/pull/177)
System/Log/FastLogger.hs view
@@ -1,5 +1,6 @@-{-# LANGUAGE CPP #-}+{-# LANGUAGE CPP #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE GADTs #-} -- | This module provides a fast logging system which -- scales on multicore environments (i.e. +RTS -N\<x\>).@@ -34,7 +35,7 @@ -- * FastLogger , FastLogger , TimedFastLogger- , LogType(..)+ , LogType'(..), LogType , newFastLogger , withFastLogger , newTimedFastLogger@@ -183,34 +184,39 @@ -- @ type TimedFastLogger = (FormattedTime -> LogStr) -> IO () +type LogType = LogType' LogStr+ -- | Logger Type.-data LogType- = LogNone -- ^ No logging.- | LogStdout BufSize -- ^ Logging to stdout.+data LogType' a where+ LogNone :: LogType' LogStr -- ^ No logging.+ LogStdout :: BufSize -> LogType' LogStr+ -- ^ Logging to stdout. -- 'BufSize' is a buffer size -- for each capability.- | LogStderr BufSize -- ^ Logging to stderr.+ LogStderr :: BufSize -> LogType' LogStr+ -- ^ Logging to stderr. -- 'BufSize' is a buffer size -- for each capability.- | LogFileNoRotate FilePath BufSize+ LogFileNoRotate :: FilePath -> BufSize -> LogType' LogStr -- ^ Logging to a file. -- 'BufSize' is a buffer size -- for each capability.- | LogFile FileLogSpec BufSize -- ^ Logging to a file.+ LogFile :: FileLogSpec -> BufSize -> LogType' LogStr+ -- ^ Logging to a file. -- 'BufSize' is a buffer size -- for each capability. -- File rotation is done on-demand.- | LogFileTimedRotate TimedFileLogSpec BufSize -- ^ Logging to a file.+ LogFileTimedRotate :: TimedFileLogSpec -> BufSize -> LogType' LogStr -- ^ Logging to a file. -- 'BufSize' is a buffer size -- for each capability. -- Rotation happens based on check specified -- in 'TimedFileLogSpec'.- | LogCallback (LogStr -> IO ()) (IO ()) -- ^ Logging with a log and flush action.- -- run flush after log each message.+ LogCallback :: (v -> IO ()) -> IO () -> LogType' v -- ^ Logging with a log and flush action.+ -- run flush after log each message. -- | Initialize a 'FastLogger' without attaching timestamp -- a tuple of logger and clean up action are returned.-newFastLogger :: LogType -> IO (FastLogger, IO ())+newFastLogger :: LogType' v -> IO (v -> IO (), IO ()) newFastLogger typ = case typ of LogNone -> return (const noOp, noOp) LogStdout bsize -> newStdoutLoggerSet bsize >>= stdLoggerInit
fast-logger.cabal view
@@ -1,5 +1,5 @@ Name: fast-logger-Version: 2.4.17+Version: 3.0.0 Author: Kazu Yamamoto <kazu@iij.ad.jp> Maintainer: Kazu Yamamoto <kazu@iij.ad.jp> License: BSD3@@ -25,7 +25,7 @@ System.Log.FastLogger.FileIO System.Log.FastLogger.LogStr System.Log.FastLogger.Logger- Build-Depends: base >= 4.5 && < 5+ Build-Depends: base >= 4.7 && < 5 , array , auto-update >= 0.1.2 , easy-file >= 0.2