barrie-0.3.1: src/Barrie/Trace.lhs
Module for enabling trace
> module Barrie.Trace (enableTrace, traceMessage) where
> import Data.IORef
> import System.IO.Unsafe
> traceFile :: IORef (Maybe String)
> traceFile = unsafePerformIO $ newIORef Nothing
> enableTrace :: String -> IO ()
> enableTrace fileName = do
> writeIORef traceFile (Just fileName)
> traceMessage :: String -> IO ()
> traceMessage msg = do
> fileName <- readIORef traceFile
> case fileName of
> Nothing -> return ()
> Just name -> appendFile name (msg ++ "\n")