상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
수정하기 - Elixir에서의 로깅 방법은?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
Elixir에서 로깅(logging)은 주로 `Logger` 모듈을 통해 수행됩니다. `Logger`는 Elixir의 표준 라이브러리로, 다양한 로깅 레벨과 포맷을 지원하며, 애플리케이션의 상태를 모니터링하고 디버깅하는 데 유용합니다. 아래에서는 Elixir에서 로깅을 설정하고 사용하는 방법에 대해 자세히 설명하겠습니다. 1. Logger 모듈 소개 Elixir의 `Logger` 모듈은 다음과 같은 주요 기능을 제공합니다: - 다양한 로깅 레벨: `:debug`, `:info`, `:warn`, `:error`, `:fatal` - 로그 메시지 포맷 설정 - 로그 출력 <a href='https://sangseek.com/sangseeks/대상 설정/ko'>대상 설정</a> (콘솔, 파일 등) - 로그 필터링 및 레벨 설정 2. Logger 설정 Elixir 애플리케이션에서 `Logger`를 사용하기 위해서는 먼저 `config/config.exs` 파일에서 <a href='https://sangseek.com/sangseeks/기본 설정/ko'>기본 설정</a>을 할 수 있습니다. 예를 들어, 로그 레벨을 설정하고, 로그 포맷을 지정할 수 있습니다. ```elixir config/config.exs use Mix.Config config :logger, level: :info, format: "[$level] $message\n" ``` 위의 설정은 로그 레벨을 `:info`로 설정하고, 로그 메시지를 특정 포맷으로 출력하도록 지정합니다. 3. 로그 메시지 기록하기 `Logger` 모듈을 사용하여 로그 메시지를 기록하는 방법은 매우 간단합니다. 다음은 기본적인 사용 예시입니다. ```elixir require Logger Logger.debug("<a href='https://sangseek.com/sangseeks/디버그/ko'>디버그</a> 메시지") Logger.info("정보 메시지") Logger.warn("경고 메시지") Logger.error("오류 메시지") ``` 각 로그 레벨에 따라 적절한 메시지를 기록할 수 있으며, 설정된 로그 레벨에 따라 출력 여부가 결정됩니다. 4. 로그 레벨 `Logger`는 다음과 같은 로그 레벨을 지원합니다: - `:debug`: 디버깅 정보를 기록합니다. 개발 중에 유용합니다. - `:info`: 일반적인 정보를 기록합니다. 애플리케이션의 상태를 나타냅니다. - `:warn`: 경고 메시지를 기록합니다. 문제가 발생할 가능성이 있는 상황을 나타냅니다. - `:error`: 오류 메시지를 기록합니다. 애플리케이션의 기능에 영향을 미치는 문제를 나타냅니다. - `:fatal`: 치명적인 오류 메시지를 기록합니다. 애플리케이션이 더 이상 작동할 수 없는 상황을 나타냅니다. 5. 로그 <a href='https://sangseek.com/sangseeks/출력 설정/ko'>출력 설정</a> `Logger`는 기본적으로 콘솔에 로그를 출력하지만, 파일이나 다른 <a href='https://sangseek.com/sangseeks/백엔드/ko'>백엔드</a>로 로그를 출력하도록 설정할 수도 있습니다. 예를 들어, 파일로 로그를 기록하려면 다음과 같이 설정할 수 있습니다. ```elixir config :logger, backends: [:console, {LoggerFileBackend, :file}], level: :info config :logger, :file, path: "log/my_app.log", level: :info, format: "[$level] $message\n" ``` 위의 설정은 `LoggerFileBackend`를 사용하여 로그를 파일에 기록하도록 설정합니다. 이 경우 `logger_file_backend` 라이브러리를 추가해야 합니다. 6. 로그 필터링 특정 로그 레벨 이상의 메시지만 출력하도록 필터링할 수 있습니다. 예를 들어, `:warn` 이상의 메시지만 출력하도록 설정할 수 있습니다. ```elixir config :logger, level: :warn ``` 이 설정은 `:warn` 및 `:error`, `:fatal` 레벨의 메시지만 출력하게 됩니다. 7. 로그 포맷 로그 메시지의 포맷을 사용자 정의할 수 있습니다. <a href='https://sangseek.com/sangseeks/기본 포맷/ko'>기본 포맷</a> 외에도 다양한 정보를 포함할 수 있습니다. 예를 들어, <a href='https://sangseek.com/sangseeks/타임스탬프/ko'>타임스탬프</a>와 모듈 이름을 포함할 수 있습니다. ```elixir config :logger, format: "[$level] [$time] [$module] $message\n" ``` 8. Logger 사용 예시 아래는 Elixir 모듈에서 `Logger`를 사용하는 간단한 예시입니다. ```elixir defmodule MyApp do require Logger def run do Logger.info("애플리케이션이 시작되었습니다.") try do 어떤 작업 수행 Logger.debug("작업을 수행 중입니다.") ... <a href='https://sangseek.com/sangseeks/rescue/ko'>rescue</a> e in RuntimeError -> Logger.error("오류 발생: {e.message}") end Logger.info("애플리케이션이 종료되었습니다.") end end ``` 9. 결론 Elixir의 `Logger` 모듈은 강력하고 유연한 로깅 기능을 제공합니다. 애플리케이션의 상태를 모니터링하고 문제를 디버깅하는 데 매우 유용하며, 다양한 설정을 통해 필요에 맞게 조정할 수 있습니다. 로깅을 적절히 활용하면 애플리케이션의 안정성과 유지보수성을 크게 향상시킬 수 있습니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기