commit ghc-monad-logger for openSUSE:Factory
![](https://seccdn.libravatar.org/avatar/e2145bc5cf53dda95c308a3c75e8fef3.jpg?s=120&d=mm&r=g)
Hello community, here is the log from the commit of package ghc-monad-logger for openSUSE:Factory checked in at 2016-01-21 23:43:25 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/ghc-monad-logger (Old) and /work/SRC/openSUSE:Factory/.ghc-monad-logger.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "ghc-monad-logger" Changes: -------- --- /work/SRC/openSUSE:Factory/ghc-monad-logger/ghc-monad-logger.changes 2015-12-23 08:49:23.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.ghc-monad-logger.new/ghc-monad-logger.changes 2016-01-22 01:08:33.000000000 +0100 @@ -1,0 +2,6 @@ +Fri Jan 15 10:06:34 UTC 2016 - mimi.vx@gmail.com + +- update to 0.3.17 +* log to a chan + +------------------------------------------------------------------- Old: ---- monad-logger-0.3.16.tar.gz New: ---- monad-logger-0.3.17.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ghc-monad-logger.spec ++++++ --- /var/tmp/diff_new_pack.N4JWEN/_old 2016-01-22 01:08:35.000000000 +0100 +++ /var/tmp/diff_new_pack.N4JWEN/_new 2016-01-22 01:08:35.000000000 +0100 @@ -19,7 +19,7 @@ %global pkg_name monad-logger Name: ghc-monad-logger -Version: 0.3.16 +Version: 0.3.17 Release: 0 Summary: A class of monads which can log messages License: MIT ++++++ monad-logger-0.3.16.tar.gz -> monad-logger-0.3.17.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/monad-logger-0.3.16/ChangeLog.md new/monad-logger-0.3.17/ChangeLog.md --- old/monad-logger-0.3.16/ChangeLog.md 2015-12-13 09:03:42.000000000 +0100 +++ new/monad-logger-0.3.17/ChangeLog.md 2016-01-12 12:18:18.000000000 +0100 @@ -1,3 +1,7 @@ +## 0.3.17 + +* log to a chan [#74](https://github.com/kazu-yamamoto/logger/pull/74) + ## 0.3.16 * Provide default monadLoggerLog implementation [#72](https://github.com/kazu-yamamoto/logger/pull/72) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/monad-logger-0.3.16/Control/Monad/Logger.hs new/monad-logger-0.3.17/Control/Monad/Logger.hs --- old/monad-logger-0.3.16/Control/Monad/Logger.hs 2015-12-13 09:03:42.000000000 +0100 +++ new/monad-logger-0.3.17/Control/Monad/Logger.hs 2016-01-12 12:18:18.000000000 +0100 @@ -36,6 +36,8 @@ , LoggingT (..) , runStderrLoggingT , runStdoutLoggingT + , runChanLoggingT + , unChanLoggingT , withChannelLogger , filterLogger , NoLoggingT (..) @@ -80,10 +82,11 @@ import Data.Monoid (Monoid) import Control.Applicative (Applicative (..)) +import Control.Concurrent.Chan (Chan(),writeChan,readChan) import Control.Concurrent.STM import Control.Concurrent.STM.TBChan import Control.Exception.Lifted (onException) -import Control.Monad (liftM, ap, when, void) +import Control.Monad (liftM, ap, when, void, forever) import Control.Monad.Base (MonadBase (liftBase)) import Control.Monad.Loops (untilM) import Control.Monad.Trans.Control (MonadBaseControl (..), MonadTransControl (..)) @@ -579,6 +582,29 @@ runStdoutLoggingT :: MonadIO m => LoggingT m a -> m a runStdoutLoggingT = (`runLoggingT` defaultOutput stdout) +-- | Run a block using a @MonadLogger@ instance which writes tuples to an +-- unbounded channel. +-- +-- The tuples can be extracted (ie. in another thread) with `unChanLoggingT` +-- or a custom extraction funtion, and written to a destination. +-- +-- @since 0.3.17 +runChanLoggingT :: MonadIO m => Chan (Loc, LogSource, LogLevel, LogStr) -> LoggingT m a -> m a +runChanLoggingT chan = (`runLoggingT` sink chan) + where + sink chan loc src lvl msg = writeChan chan (loc,src,lvl,msg) + +-- | Read logging tuples from an unbounded channel and log them into a +-- `MonadLoggerIO` monad, forever. +-- +-- For use in a dedicated thread with a channel fed by `runChanLoggingT`. +-- +-- @since 0.3.17 +unChanLoggingT :: (MonadLogger m, MonadIO m) => Chan (Loc, LogSource, LogLevel, LogStr) -> m () +unChanLoggingT chan = forever $ do + (loc,src,lvl,msg) <- liftIO $ readChan chan + monadLoggerLog loc src lvl msg + -- | Within the 'LoggingT' monad, capture all log messages to a bounded -- channel of the indicated size, and only actually log them if there is an -- exception. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/monad-logger-0.3.16/monad-logger.cabal new/monad-logger-0.3.17/monad-logger.cabal --- old/monad-logger-0.3.16/monad-logger.cabal 2015-12-13 09:03:42.000000000 +0100 +++ new/monad-logger-0.3.17/monad-logger.cabal 2016-01-12 12:18:18.000000000 +0100 @@ -1,5 +1,5 @@ name: monad-logger -version: 0.3.16 +version: 0.3.17 synopsis: A class of monads which can log messages. description: Hackage documentation generation is not reliable. For up to date documentation, please see: http://www.stackage.org/package/monad-logger. homepage: https://github.com/kazu-yamamoto/logger
participants (1)
-
root@hilbert.suse.de