pm2配置文件修改日志路径后不生效

3,792 阅读1分钟

修改日志路径不生效

今天在用pm2部署时遇到一个问题,修改pm2配置文件后不生效。我的配置文件用的是json格式的(ecosystem.json),增加日志路径后重启,日志路径还是原来的路径。

//ecosystem.json 配置文件
{
  "name"        : "djxt",
  "script"      : "./bin/www.js",
  "cwd"         : "./",
  "watch": [
    "bin",
    "routers"
  ],
  "ignore_watch" : [
    "node_modules", 
    "logs",
    "public"
  ],
  "watch_options": {
    "followSymlinks": false
  },
  "env": {
      "NODE_ENV": "production"
  },
  "env_test": {
    "NODE_ENV": "testing"
  }
}

上面的代码是刚开始的配置,开启pm2后,这时执行 pm2 list 可看到如下:

pm2配置文件
再根据id执行 pm2 log 0 看到id为0的进程日志信息,如下:

pm2日志路径
可以看到这时日志输出的默认路径。

修改pm2配置文件的日志路径

接下来增加日志路径

//ecosystem.json 配置文件
{
  "name"        : "djxt",
  "script"      : "./bin/www.js",
  "cwd"         : "./",
  "watch": [
    "bin",
    "routers"
  ],
  "ignore_watch" : [
    "node_modules", 
    "logs",
    "public"
  ],
  "watch_options": {
    "followSymlinks": false
  },
  "env": {
      "NODE_ENV": "production"
  },
  "env_test": {
    "NODE_ENV": "testing"
  },
  "error" : "./logs/app-err.log", //错误日志路径
  "output"   : "./logs/app-out.log", //正常日志路径
  "merge_logs": true, // 设置追加日志而不是新建日志                         
  "log_date_format": "YYYY-MM-DD HH:mm:ss" // 指定日志文件的时间格式
}

注意,这时候执行 pm2 reload 0 后配置是不会生效的,需要将pm2进程杀掉重新开启才能生效。 执行 pm2 delete 0 (这里的0是对呀pm2列表的id,如果要将全部进程关掉,可以把0改成all),再重新开启pm2进程,如下图:

pm2配置文件
此时的日志路径已经修改为我们配置文件里所指定的路径了。