2017-05-12 12 views
2

現在phoenixフレームワークv1.3 rc1を使用してAPIを構築していますが、ローカルの開発環境ではすべてが意図どおり動作しますが、 phxアプリケーションが500の内部サーバーエラーを返すAPIをテストするためのボックス。私は、dev/prod環境のログを設定しようとしています.をgithubページのthe instructionsに従ってください。しかし、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や蒸留所を使用している場合は、それを '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

関連する問題