Как отправить журналы Happstack на стандартный вывод?

У меня есть простое приложение hello world happstack:

module Main where

import Happstack.Server (nullConf, simpleHTTP, toResponse, ok)

main :: IO ()
main = simpleHTTP nullConf $ ok "Hello, World!"

Я хочу, чтобы он регистрировал запросы на стандартный вывод.

Я нашел этот http://happstack.wordpress.com/2009/02/26/happstack-now-outputs-apache-combined-logs/, в котором говорится, что журналы выводятся, но они не собираются в стандартный вывод. Я никогда раньше не использовал hslogger, и мне трудно понять, как а) настроить его и б) подключить к happstack. nullConf предоставляет значение по умолчанию logMAccess, но неясно, как оно попадает в hslogger.


person Xavier Shay    schedule 02.09.2013    source источник


Ответы (1)


Сразу после публикации я нашел это: http://www.haskell.org/pipermail/beginners/2011-August/008184.html, что дало мне нужную подсказку.

module Main where

import Happstack.Server (nullConf, simpleHTTP, toResponse, ok)

import System.IO
import System.Log.Logger ( updateGlobalLogger
                         , rootLoggerName
                         , setLevel
                         , Priority(..)
                         )

main :: IO ()
main = do
  updateGlobalLogger rootLoggerName (setLevel INFO)

  simpleHTTP nullConf $ ok "Hello, World!"
person Xavier Shay    schedule 02.09.2013
comment
Вероятно, вы не хотите изменять настройки корневого регистратора — это меняет поведение для всех дочерних элементов, а только для Happstack. - person Matvey Aksenov; 12.02.2014
comment
Чтобы это было абсолютно ясно, так как это один из очень немногих гугл-хитов на эту тему. Есть еще один импорт, необходимый для включения журнала доступа Happstack по умолчанию: import System.Log.Handler.Simple - person user532954; 27.10.2015