@@ -22,14 +22,14 @@
2222module Katip.Core where
2323
2424-------------------------------------------------------------------------------
25−import Control.Applicative as A
25+import Control.Applicative as A
2626import Control.AutoUpdate
2727import Control.Concurrent
28−import qualified Control.Concurrent.Async as Async
28+import qualified Control.Concurrent.Async as Async
2929import Control.Concurrent.STM
30−import qualified Control.Concurrent.STM.TBQueue as BQ
30+import qualified Control.Concurrent.STM.TBQueue as BQ
3131import Control.Exception.Safe
32−import Control.Monad (unless, void, when)
32+import Control.Monad (unless, void, when)
3333import Control.Monad.Base
3434import Control.Monad.IO.Class
3535import Control.Monad.IO.Unlift
@@ -41,28 +41,30 @@ import Control.Monad.Trans.Either
4141import Control.Monad.Trans.Except
4242import Control.Monad.Trans.Maybe
4343import Control.Monad.Trans.Reader
44−import Control.Monad.Trans.Resource (ResourceT, transResourceT)
45−import Control.Monad.Trans.State.Lazy (StateT, mapStateT)
46−import qualified Control.Monad.Trans.State.Strict as Strict (StateT, mapStateT)
47−import Control.Monad.Trans.Writer.Lazy (WriterT, mapWriterT)
48−import qualified Control.Monad.Trans.Writer.Strict as Strict (WriterT, mapWriterT)
49−import Control.Monad.Trans.RWS.Lazy (RWST, mapRWST)
50−import qualified Control.Monad.Trans.RWS.Strict as Strict (RWST, mapRWST)
51−import Data.Aeson (FromJSON (..), ToJSON (..),
52− object)
53−import qualified Data.Aeson as A
54−import Data.Foldable as FT
55−import qualified Data.HashMap.Strict as HM
44+import Control.Monad.Trans.Resource (ResourceT, transResourceT)
45+import Control.Monad.Trans.RWS.Lazy (RWST, mapRWST)
46+import qualified Control.Monad.Trans.RWS.Strict as Strict (RWST, mapRWST)
47+import Control.Monad.Trans.State.Lazy (StateT, mapStateT)
48+import qualified Control.Monad.Trans.State.Strict as Strict (StateT, mapStateT)
49+import Control.Monad.Trans.Writer.Lazy (WriterT, mapWriterT)
50+import qualified Control.Monad.Trans.Writer.Strict as Strict (WriterT,
51+ mapWriterT)
52+import Data.Aeson (FromJSON (..), ToJSON (..),
53+ object)
54+import qualified Data.Aeson as A
55+import Data.Foldable as FT
56+import qualified Data.HashMap.Strict as HM
5657import Data.List
57−import qualified Data.Map.Strict as M
58−import Data.Semigroup as SG
58+import qualified Data.Map.Strict as M
59+import Data.Maybe (fromMaybe)
60+import Data.Semigroup as SG
5961import Data.String
6062import Data.String.Conv
61−import Data.Text (Text)
62−import qualified Data.Text as T
63−import qualified Data.Text.Lazy.Builder as B
63+import Data.Text (Text)
64+import qualified Data.Text as T
65+import qualified Data.Text.Lazy.Builder as B
6466import Data.Time
65−import GHC.Generics hiding (to)
67+import GHC.Generics hiding (to)
6668#if MIN_VERSION_base(4, 8, 0)
6769#if !MIN_VERSION_base(4, 9, 0)
6870import GHC.SrcLoc
@@ -70,7 +72,7 @@ import GHC.SrcLoc
7072import GHC.Stack
7173#endif
7274import Language.Haskell.TH
73−import qualified Language.Haskell.TH.Syntax as TH
75+import qualified Language.Haskell.TH.Syntax as TH
7476import Lens.Micro
7577import Lens.Micro.TH
7678import Network.HostName
@@ -244,7 +246,9 @@ newtype ThreadIdText = ThreadIdText {
244246
245247
246248mkThreadIdText :: ThreadId -> ThreadIdText
247−mkThreadIdText = ThreadIdText . T.pack . show
249+mkThreadIdText = ThreadIdText . stripPrefix' "ThreadId " . T.pack . show
250+ where
251+ stripPrefix' pfx t = fromMaybe t (T.stripPrefix pfx t)
248252
249253
250254-------------------------------------------------------------------------------
@@ -578,9 +582,9 @@ permitOR f1 f2 = \a -> liftA2 (||) (f1 a) (f2 a)
578582
579583
580584data Scribe = Scribe {
581− liPush :: forall a. LogItem a => Item a -> IO ()
585+ liPush :: forall a. LogItem a => Item a -> IO ()
582586 -- ^ How do we write an item to the scribe's output?
583− , scribeFinalizer :: IO ()
587+ , scribeFinalizer :: IO ()
584588 -- ^ Provide a __blocking__ finalizer to call when your scribe is
585589 -- removed. All pending writes should be flushed synchronously. If
586590 -- this is not relevant to your scribe, return () is fine.
@@ -618,7 +622,7 @@ instance Monoid Scribe where
618622-------------------------------------------------------------------------------
619623data ScribeHandle = ScribeHandle {
620624 shScribe :: Scribe
621− , shChan :: BQ.TBQueue WorkerMessage
625+ , shChan :: BQ.TBQueue WorkerMessage
622626 }
623627
624628