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 - [email protected]
+
+- 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


Reply via email to