monad-logger-syslog 0.1.0.0 → 0.1.1.0
raw patch · 5 files changed
+80/−49 lines, 5 filesdep −monad-logger-syslogdep −shellydep ~basedep ~fast-loggerdep ~monad-loggernew-uploader
Dependencies removed: monad-logger-syslog, shelly
Dependency ranges changed: base, fast-logger, monad-logger
Files
- Control/Monad/Logger/Syslog.hs +24/−0
- README.md +15/−3
- System/Log/MonadLogger/Syslog.hs +23/−12
- monad-logger-syslog.cabal +18/−22
- test/smoke.hs +0/−12
+ Control/Monad/Logger/Syslog.hs view
@@ -0,0 +1,24 @@+module Control.Monad.Logger.Syslog+ ( module System.Log.MonadLogger.Syslog )+ where++{-|+Module : Control.Monad.Logger.Syslog+Description : Functions for directing monad-logger output to syslog+Copyright : FPComplete, 2015+License : MIT+Maintainer : FP Complete Developers <dev@fpcomplete.com>+Stability : experimental+Portability : POSIX++Example:+```+import Control.Monad.Logger ( logDebugN )+import Control.Monad.Logger.Syslog ( runSyslogLoggingT )++main :: IO ()+main = runSyslogLoggingT (logDebugN "HELLO!")+```+|-}++import System.Log.MonadLogger.Syslog
README.md view
@@ -1,4 +1,16 @@-monad-logger-rsyslog-====================+# Monad Logger for Syslog -an rsyslog output for monad-logger++++## Install++ cabal install monad-logger-syslog++## Usage (example)++ import Control.Monad.Logger ( logDebugN )+ import Control.Monad.Logger.Syslog ( runSyslogLoggingT )++ main :: IO ()+ main = runSyslogLoggingT (logDebugN "HELLO!")
System/Log/MonadLogger/Syslog.hs view
@@ -1,11 +1,18 @@ {-# LANGUAGE OverloadedStrings #-}-module System.Log.MonadLogger.Syslog where +module System.Log.MonadLogger.Syslog+ ( runSyslogLoggingT+ , syslogOutput+ , defaultSyslogOutput+ , formattedSyslogOutput+ )+ where+ import Control.Monad.IO.Class (MonadIO ()) import Control.Monad.Logger import System.Posix.Syslog import Data.Text (unpack)-import System.Log.FastLogger (LogStr, fromLogStr)+import System.Log.FastLogger (fromLogStr) import qualified Data.ByteString.Char8 as BS8 runSyslogLoggingT :: MonadIO m => LoggingT m a -> m a@@ -17,20 +24,24 @@ {- runSyslogLoggingT :: MonadIO m => String -> LoggingT m a -> m a runSyslogLoggingT source action =- useSyslog source (runLoggingT action syslogOutput)+ useSyslog source (runLoggingT action defaultSyslogOutput) -} +syslogOutput :: Loc -> LogSource -> LogLevel -> LogStr -> IO ()+syslogOutput = defaultSyslogOutput -syslogOutput :: Loc- -> LogSource- -> LogLevel- -> LogStr- -> IO ()-syslogOutput l s level msg =- syslog (levelToPriority level) $- BS8.unpack $ fromLogStr $- defaultLogStr l s level msg+defaultSyslogOutput :: Loc -> LogSource -> LogLevel -> LogStr -> IO ()+defaultSyslogOutput = formattedSyslogOutput defaultLogStr +formattedSyslogOutput :: (Loc -> LogSource -> LogLevel -> LogStr -> LogStr)+ -> Loc+ -> LogSource+ -> LogLevel+ -> LogStr+ -> IO ()+formattedSyslogOutput f l s level msg =+ syslog (levelToPriority level)+ (BS8.unpack (fromLogStr (f l s level msg))) levelToPriority :: LogLevel -> Priority levelToPriority LevelDebug = Debug
monad-logger-syslog.cabal view
@@ -1,34 +1,30 @@ name: monad-logger-syslog-version: 0.1.0.0-synopsis: rsyslog output for monad-logger-description: rsyslog output for monad-logger-homepage: https://github.com/docmunch/monad-logger-rsyslog+version: 0.1.1.0+synopsis: syslog output for monad-logger+description: syslog output for monad-logger+homepage: https://github.com/fpco/monad-logger-syslog license: MIT license-file: LICENSE-author: Greg Weber-maintainer: greg@gregweber.info-category: System+author: Greg Weber & FP Complete Developers+maintainer: devs@fpcomplete.com+category: Logging build-type: Simple extra-source-files: README.md cabal-version: >=1.10 +source-repository head+ type: git+ location: https://github.com/fpco/monad-logger-syslog+ library default-language: Haskell2010- exposed-modules: System.Log.MonadLogger.Syslog+ exposed-modules: Control.Monad.Logger.Syslog+ System.Log.MonadLogger.Syslog ghc-options: -Wall- build-depends: base >=4.6 && <4.7- , monad-logger >= 0.3.4.0- , fast-logger >= 2.1.0+ build-depends: base >=4.6 && <5+ , bytestring+ , fast-logger , hsyslog- , transformers+ , monad-logger , text- , bytestring--test-suite smoke- default-language: Haskell2010-- type: exitcode-stdio-1.0- hs-source-dirs: test- main-is: smoke.hs-- build-depends: base, monad-logger, monad-logger-syslog, shelly+ , transformers
− test/smoke.hs
@@ -1,12 +0,0 @@-{-# LANGUAGE OverloadedStrings #-}-import Control.Monad.Logger-import System.Log.MonadLogger.Syslog-import Shelly--main :: IO ()-main = do- let logFile = "/var/log/syslog"- runSyslogLoggingT $ logDebugN "HELLO!"- shellyNoDir $- whenM (test_e logFile) $- cmd "tail" logFile