packages feed

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 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