Haskell:
표준 에러에 쓰기

어떻게:

하스켈에서 System.IO 모듈을 사용한 base 라이브러리를 통해 stderr로 쓰기는 간단합니다. 아래는 기본 예제입니다:

import System.IO

main :: IO ()
main = do
  hPutStrLn stderr "이것은 오류 메시지입니다."

이 프로그램의 stderr 출력은 다음과 같습니다:

이것은 오류 메시지입니다.

더 복잡한 애플리케이션에서 작업 중이거나 로깅(오류 포함)에 대한 더 나은 제어가 필요한 경우, 타사 라이브러리를 선택할 수 있습니다. 인기 있는 선택 중 하나는 하스켈 프로그래밍의 mtl 스타일과 통합하는 monad-logger입니다. 여기 monad-logger를 사용한 작은 코드 조각이 있습니다:

{-# LANGUAGE OverloadedStrings #-}
import Control.Monad.Logger

main :: IO ()
main = runStderrLoggingT $ do
  logErrorN "monad-logger를 사용한 이 오류 메시지입니다."

실행할 때, monad-logger 버전도 마찬가지로 오류 메시지를 출력하지만, 구성에 따라 타임스탬프나 로그 레벨과 같은 추가 컨텍스트를 제공합니다:

[Error] monad-logger를 사용한 이 오류 메시지입니다.

두 방법 모두 stderr에 쓰기 위한 목적을 제공하며, 선택은 대체로 애플리케이션의 복잡성과 필요에 따라 달라집니다.