module System.Log.Simple.File (
    file
    ) where

import Data.Text (Text)
import qualified Data.Text.IO as T
import System.Log.Simple.Base
import System.FilePath
import System.Directory
import System.IO

file :: FilePath -> Consumer Text
file fileName = Consumer withFileLog where
    withFileLog f = do
        createDirectoryIfMissing True $ takeDirectory fileName
        f $ \txt -> withFile fileName AppendMode $ \h -> do
            hSetEncoding h utf8
            T.hPutStrLn h txt