人们在使用RIO库时如何将内容打印到stdout?
我已经阅读了有关RIO github的讨论:
https://github.com/commercialhaskell/rio/issues/5#issuecomment-355061756
但找不到解决方案。
人们在使用RIO库时如何将内容打印到stdout?
我已经阅读了有关RIO github的讨论:
https://github.com/commercialhaskell/rio/issues/5#issuecomment-355061756
但找不到解决方案。
标准方法是使用logging functions:
#!/usr/bin/env stack
-- stack --resolver lts-13.19 script
{-# LANGUAGE OverloadedStrings #-}
import RIO
main :: IO ()
main = runSimpleApp $ do logInfo "Hello World"
并执行它们:
$ stack rio.hs
Hello World
您还可以使用logOptionsHandle将任何类型的Handle
传递给它(包括stdout
或文件句柄(如果要登录文件))并进行相应配置。您甚至可以根据需要使用Prelude的print
,但是与上面的日志记录方法不同,它效率不高并且不是线程安全的,这意味着在并发设置中可能导致交错输出:
import Prelude (print)
import RIO
main :: IO ()
main = runSimpleApp $ do liftIO $ print "hello"