2017-05-12 7 views
2

현재 phoenix 프레임 워크 v1.3 rc1을 사용하여 API를 빌드하고 있으며 모든 것이 로컬 개발 환경에서 의도 한대로 작동하지만 제작 변경 사항을 푸시했을 때 phx 앱이 500의 내부 서버 오류를 반환하는 API를 테스트하는 상자. 내가 설치 dev/prod 환경에 대한 을 사용하여 로깅을 시도하고있어github 페이지에 있지만 모든 로그 파일을 dev에 또는 prod 환경에서 생성되는 볼 수 없습니다.phoenix 프레임 워크로 logger_file_backend를 사용하여 파일에 로그온하는 방법

config.exs

# Configures Elixir's Logger 
config :logger, :console, 
    backends: [{LoggerFileBackend, :error_log}] 
    # format: "$time $metadata[$level] $message\n", 
    # metadata: [:request_id] 

# configuration for the {LoggerFileBackend, :error_log} backend 
config :logger, :error_log, 
    path: "/home/deploy/deployments/kegcopr_api/error.log", 
    level: :error 

prod.exs

# Do not print debug messages in production 
# config :logger, level: :info 
config :logger, format: "[$level] $message\n", 
    backends: [{LoggerFileBackend, :error_log}, :console] 

config :logger, :error_log, 
    path: "/home/deploy/deployments/kegcopr_api/error.log", 
    level: :error 

dev.exs

# Do not include metadata nor timestamps in development logs 
config :logger, :console, format: "[$level] $message\n", 
    backends: [{LoggerFileBackend, :error_log}, :console] 

config :logger, :error_log, 
    path: "/opt/elixir/kegcopr_api/log/error.log", 
    level: :debug 
+0

프로덕션 서버에서 콘솔 모드로 응용 프로그램을 실행하면 오류 메시지가 표시됩니다. 예를 들어 exrm이나 distillery를 사용한다면'bin/my_app console'로 실행하십시오. –

+0

@StevePallen 제안에 감사드립니다.하지만 제안한 명령으로는 훌륭하게 작동하지 않는 'gatling'을 사용하여이 앱을 배포하고 있습니다. – Chris

+0

코드에서 Logger.debug를 어떻게 호출하고 있습니까? –

답변

6

이 설정을보십시오 :

config :logger, 
    backends: [:console, {LoggerFileBackend, :error_log}], 
    format: "[$level] $message\n" 

config :logger, :error_log, 
    path: "/tmp/info.log", 
    level: :debug 

저에게 맞습니다.

iex(1)> require Logger 
Logger 
iex(2)> Logger.debug "more here" 
:ok 
iex(3)> 
21:39:58.608 [debug] more here 

$ tail -f /tmp/info.log 
21:34:29.756 [info] testing.. 
21:38:23.380 [debug] test me 
21:39:58.608 [debug] more here 
+0

답장을 보내 주셔서 감사합니다. 이제 API가 작동하는 것 같습니다. 그러나 API에 형식이 잘못된 JSON 응답을 보내면 제작 상자에 '/ tmp'에 로그 파일이 생성 된 것을 볼 수 없습니다. dev가 다른지 확인하겠습니다. – Chris

+0

예, 로그 파일이 dev 상자에 만들어지지 않습니다. / – Chris

관련 문제