katip 0.3.1.2 → 0.3.1.3
raw patch · 6 files changed
+52/−5 lines, 6 filesdep +Win32PVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependencies added: Win32
API changes (from Hackage documentation)
- Katip.Core: instance Data.Aeson.Types.Class.FromJSON Katip.Core.Environment
- Katip.Core: instance Data.Aeson.Types.Class.FromJSON Katip.Core.LocJs
- Katip.Core: instance Data.Aeson.Types.Class.FromJSON Katip.Core.LogStr
- Katip.Core: instance Data.Aeson.Types.Class.FromJSON Katip.Core.Namespace
- Katip.Core: instance Data.Aeson.Types.Class.FromJSON Katip.Core.ProcessIDJs
- Katip.Core: instance Data.Aeson.Types.Class.FromJSON Katip.Core.Severity
- Katip.Core: instance Data.Aeson.Types.Class.FromJSON Katip.Core.ThreadIdText
- Katip.Core: instance Data.Aeson.Types.Class.FromJSON a => Data.Aeson.Types.Class.FromJSON (Katip.Core.Item a)
- Katip.Core: instance Data.Aeson.Types.Class.ToJSON Katip.Core.Environment
- Katip.Core: instance Data.Aeson.Types.Class.ToJSON Katip.Core.LocJs
- Katip.Core: instance Data.Aeson.Types.Class.ToJSON Katip.Core.Namespace
- Katip.Core: instance Data.Aeson.Types.Class.ToJSON Katip.Core.ProcessIDJs
- Katip.Core: instance Data.Aeson.Types.Class.ToJSON Katip.Core.Severity
- Katip.Core: instance Data.Aeson.Types.Class.ToJSON Katip.Core.SimpleLogPayload
- Katip.Core: instance Data.Aeson.Types.Class.ToJSON Katip.Core.ThreadIdText
- Katip.Core: instance Data.Aeson.Types.Class.ToJSON a => Data.Aeson.Types.Class.ToJSON (Katip.Core.Item a)
- Katip.Monadic: instance Data.Aeson.Types.Class.ToJSON Katip.Monadic.LogContexts
+ Katip.Core: instance Data.Aeson.Types.FromJSON.FromJSON Katip.Core.Environment
+ Katip.Core: instance Data.Aeson.Types.FromJSON.FromJSON Katip.Core.LocJs
+ Katip.Core: instance Data.Aeson.Types.FromJSON.FromJSON Katip.Core.LogStr
+ Katip.Core: instance Data.Aeson.Types.FromJSON.FromJSON Katip.Core.Namespace
+ Katip.Core: instance Data.Aeson.Types.FromJSON.FromJSON Katip.Core.ProcessIDJs
+ Katip.Core: instance Data.Aeson.Types.FromJSON.FromJSON Katip.Core.Severity
+ Katip.Core: instance Data.Aeson.Types.FromJSON.FromJSON Katip.Core.ThreadIdText
+ Katip.Core: instance Data.Aeson.Types.FromJSON.FromJSON a => Data.Aeson.Types.FromJSON.FromJSON (Katip.Core.Item a)
+ Katip.Core: instance Data.Aeson.Types.ToJSON.ToJSON Katip.Core.Environment
+ Katip.Core: instance Data.Aeson.Types.ToJSON.ToJSON Katip.Core.LocJs
+ Katip.Core: instance Data.Aeson.Types.ToJSON.ToJSON Katip.Core.Namespace
+ Katip.Core: instance Data.Aeson.Types.ToJSON.ToJSON Katip.Core.ProcessIDJs
+ Katip.Core: instance Data.Aeson.Types.ToJSON.ToJSON Katip.Core.Severity
+ Katip.Core: instance Data.Aeson.Types.ToJSON.ToJSON Katip.Core.SimpleLogPayload
+ Katip.Core: instance Data.Aeson.Types.ToJSON.ToJSON Katip.Core.ThreadIdText
+ Katip.Core: instance Data.Aeson.Types.ToJSON.ToJSON a => Data.Aeson.Types.ToJSON.ToJSON (Katip.Core.Item a)
+ Katip.Monadic: instance Data.Aeson.Types.ToJSON.ToJSON Katip.Monadic.LogContexts
- Katip: itemApp :: Lens' (Item a_am8C) Namespace
+ Katip: itemApp :: Lens' (Item a_amWt) Namespace
- Katip: itemEnv :: Lens' (Item a_am8C) Environment
+ Katip: itemEnv :: Lens' (Item a_amWt) Environment
- Katip: itemHost :: Lens' (Item a_am8C) HostName
+ Katip: itemHost :: Lens' (Item a_amWt) HostName
- Katip: itemLoc :: Lens' (Item a_am8C) (Maybe Loc)
+ Katip: itemLoc :: Lens' (Item a_amWt) (Maybe Loc)
- Katip: itemMessage :: Lens' (Item a_am8C) LogStr
+ Katip: itemMessage :: Lens' (Item a_amWt) LogStr
- Katip: itemNamespace :: Lens' (Item a_am8C) Namespace
+ Katip: itemNamespace :: Lens' (Item a_amWt) Namespace
- Katip: itemPayload :: Lens (Item a_am8C) (Item a_arSS) a_am8C a_arSS
+ Katip: itemPayload :: Lens (Item a_amWt) (Item a_asWH) a_amWt a_asWH
- Katip: itemProcess :: Lens' (Item a_am8C) ProcessID
+ Katip: itemProcess :: Lens' (Item a_amWt) ProcessID
- Katip: itemSeverity :: Lens' (Item a_am8C) Severity
+ Katip: itemSeverity :: Lens' (Item a_amWt) Severity
- Katip: itemThread :: Lens' (Item a_am8C) ThreadIdText
+ Katip: itemThread :: Lens' (Item a_amWt) ThreadIdText
- Katip: itemTime :: Lens' (Item a_am8C) UTCTime
+ Katip: itemTime :: Lens' (Item a_amWt) UTCTime
- Katip.Core: itemApp :: Lens' (Item a_am8C) Namespace
+ Katip.Core: itemApp :: Lens' (Item a_amWt) Namespace
- Katip.Core: itemEnv :: Lens' (Item a_am8C) Environment
+ Katip.Core: itemEnv :: Lens' (Item a_amWt) Environment
- Katip.Core: itemHost :: Lens' (Item a_am8C) HostName
+ Katip.Core: itemHost :: Lens' (Item a_amWt) HostName
- Katip.Core: itemLoc :: Lens' (Item a_am8C) (Maybe Loc)
+ Katip.Core: itemLoc :: Lens' (Item a_amWt) (Maybe Loc)
- Katip.Core: itemMessage :: Lens' (Item a_am8C) LogStr
+ Katip.Core: itemMessage :: Lens' (Item a_amWt) LogStr
- Katip.Core: itemNamespace :: Lens' (Item a_am8C) Namespace
+ Katip.Core: itemNamespace :: Lens' (Item a_amWt) Namespace
- Katip.Core: itemPayload :: Lens (Item a_am8C) (Item a_arSS) a_am8C a_arSS
+ Katip.Core: itemPayload :: Lens (Item a_amWt) (Item a_asWH) a_amWt a_asWH
- Katip.Core: itemProcess :: Lens' (Item a_am8C) ProcessID
+ Katip.Core: itemProcess :: Lens' (Item a_amWt) ProcessID
- Katip.Core: itemSeverity :: Lens' (Item a_am8C) Severity
+ Katip.Core: itemSeverity :: Lens' (Item a_amWt) Severity
- Katip.Core: itemThread :: Lens' (Item a_am8C) ThreadIdText
+ Katip.Core: itemThread :: Lens' (Item a_amWt) ThreadIdText
- Katip.Core: itemTime :: Lens' (Item a_am8C) UTCTime
+ Katip.Core: itemTime :: Lens' (Item a_amWt) UTCTime
Files
- README.md +1/−0
- changelog.md +4/−0
- katip.cabal +7/−2
- src/Katip/Compat.hs +30/−0
- src/Katip/Core.hs +5/−0
- test/Katip/Tests/Scribes/Handle.hs +5/−3
README.md view
@@ -82,3 +82,4 @@ * [Michael Xavier](https://github.com/MichaelXavier) * [Doug Beardsley](https://github.com/mightybyte) * [Leonid Onokhov](https://github.com/sopvop)+* [Alexander Vershilov](https://github.com/qnikst)
changelog.md view
@@ -1,3 +1,7 @@+0.3.1.3+=======+* Fix build on windows+ 0.3.1.2 ======= * Add some missing test files
katip.cabal view
@@ -1,5 +1,5 @@ name: katip-version: 0.3.1.2+version: 0.3.1.3 synopsis: A structured logging framework. description: Katip is a structured logging framework. See README.md for more details.@@ -68,7 +68,6 @@ , time >= 1 && < 1.7 , transformers >= 0.3 && < 0.6 , transformers-compat- , unix >= 2.5 && < 2.8 , unordered-containers >= 0.2 && < 0.3 , monad-control >= 1.0 && < 1.1 , mtl >= 2.0 && < 2.3@@ -83,6 +82,12 @@ ghc-options: -Wall if flag(lib-Werror) ghc-options: -Werror+ if os(windows)+ build-depends: Win32 >=2.3 && <2.5+ other-modules: Katip.Compat+ else+ build-depends: unix >= 2.5 && <2.8+ test-suite test type: exitcode-stdio-1.0
+ src/Katip/Compat.hs view
@@ -0,0 +1,30 @@+{-# LANGUAGE ForeignFunctionInterface #-}+{-# LANGUAGE CPP #-}+module Katip.Compat+ ( ProcessID+ , getProcessID+ ) where++import System.Win32.Process++type ProcessID = ProcessId++#if !MIN_VERSION_Win32(2,4,0)++#if defined(i386_HOST_ARCH)+# define WINDOWS_CCONV stdcall+#elif defined(x86_64_HOST_ARCH)+# define WINDOWS_CCONV ccall+#else+# error Unknown mingw32 arch+#endif++foreign import WINDOWS_CCONV unsafe "windows.h GetCurrentProcessId"+ c_GetCurrentProcessId :: IO ProcessId++getProcessID :: IO ProcessID+getProcessID = c_GetCurrentProcessId+#else+getProcessID :: IO ProcessID+getProcessID = getCurrentProcessId+#endif
src/Katip/Core.hs view
@@ -63,7 +63,12 @@ import Lens.Micro import Lens.Micro.TH import Network.HostName+#if mingw32_HOST_OS+import Katip.Compat+#else import System.Posix+#endif+ -------------------------------------------------------------------------------
test/Katip/Tests/Scribes/Handle.hs view
@@ -7,10 +7,11 @@ import Control.Monad import Data.Aeson import qualified Data.ByteString.Lazy as BL+import qualified Data.ByteString.Char8 as B import Data.Monoid import Data.Text (Text) import qualified Data.Text as T-import qualified Data.Text.IO as T+import qualified Data.Text.Encoding as T import qualified Data.Text.Lazy as LT import qualified Data.Text.Lazy.Builder as LT import Data.Time@@ -211,13 +212,14 @@ ------------------------------------------------------------------------------- writeTextLog :: (FilePath, Handle) -> IO (BL.ByteString) writeTextLog (path, h) = do- mapM_ (T.hPutStrLn h . formatOne) genItems- mapM_ (T.hPutStrLn h . formatOne) genTypedItems+ mapM_ (put . formatOne) genItems+ mapM_ (put . formatOne) genTypedItems hClose h BL.readFile path where formatOne :: LogItem a => Item a -> Text formatOne = LT.toStrict . LT.toLazyText . formatItem False V3+ put = B.hPutStrLn h . T.encodeUtf8 setupTempFile :: IO (FilePath, Handle) setupTempFile = do