Node.js PM2 로 Debug Log 볼 때 stderr 에 출력되는 현상 해결 하기

Node.js 프로젝트가 마침표에 가까워질 수록 프로세스를 어떻게 관리해야 할지 고민한다. 요즘은 Node.js Domain API에 완전히 당해서 넋이 나가 있었다.


PM2 로 App 을 시작 할 때 Debug Log를 감시하고 싶을 때가 있다. 아이러니하게도 node debug로 사용된 로그는 stderr 로 출력된다.



stdout 으로 출력하기 위해서는 환경변수를 추가해야 한다.


DEBUG_FD=1


아래는 pm2 설정 JSON 이다. 취향에 따라서 직접 명령으로 실행해도 무관 하다.


  • pm2-test.json
{
    "apps": [
        {
            "name"             : "test-app",
            "script"           : "./test.js",
            "error_file"       : "./logs/app/test-app.stderr.log",
            "out_file"         : "./logs/app/test-app.stdout.log",
            "pid_file"         : "./pids/test-app.pid",
            "instances"        : 0,
            "min_uptime"       : "1000s",
            "max_restarts"     : 15,
            "watch"            : false,
            "ignore_watch"     : ["[\\/\\\\]\\./", "node_modules"],
            "merge_logs"       : true,
            "exec_interpreter" : "node",
            "exec_mode"        : "cluster_mode",
            "autorestart"      : false,
            "vizion"           : false,
            "env"              : {
                "NODE_ENV"     : "development",
                "DEBUG"        : "*",
                "DEBUG_FD"     : 1
            }
        }
    ]
}


명령어를 실행 시 node debug로 사용된 로그는 stdout 으로 출력된다.


pm2 start pm2-test.json



정상적으로 출력 되는 것을 확인 할 수 있다.


신고
크리에이티브 커먼즈 라이선스
Creative Commons License
Designed by CMSFactory.NET