pomelo集群配置模式下的日志问题

@fantasyni
@py8765

问题现象
1,pomelo集群配置模式下,pomelo-logger会为每个类型的服务器生成日志文件。
2,生成的日志文件中不能正确生存当前服务器的日志文件

配置过程
1,在app.js中配置日志(参见之前日志不能记录入文件问题)

..............

var app = pomelo.createApp();

var base = app.getBase();
var serverId = app.getServerId();
require('pomelo-logger').configure( base + "/config/" + NODE_ENV + "/log4js.json" , {serverId: serverId, base: base} );

..................

2,在log4js.json文件中为每个服务器类型添加一个配置,配置如下:
比方说AA类型的服务器添加如下记录。以此类推,我们添加了BB,CC,DD

{
  "type": "file",
  "filename": "${opts:base}/logs/AA-${opts:serverId}.log",
  "maxLogSize": 1048576,
  "layout": {
      "type": "basic"
    }
  ,"backups": 5,
  "category":"AA"
},

3,在servers.json文件中配置AA,BB等服务器以"cluster方式启动。其中XXXXXX-1是非cluster启动。

比如AA配置如下:

"AA": [
    { "id": "auth", "port": "3150++", "host": "192.168.0.108", "clusterCount": 1, "args": "--harmony"}
  ],

4,启动系统。观察logs目录日志生成

总共启动了8个进程,但是日志生成了100多个文件,这个太夸张了吧。
其中还有AA-undefined.log, BB-undefined.log这样的logger文件。这是为啥?
经过测试,应用日志是记录如AA-undefined.log, BB-undefined.log这样的文件的。
比如AA类型的集群id:cluster-server-AA-0的日志是记入AA-undefined.log文件
其他都没用。

-rw-r--r-- 1 me me    0 12月 14 13:16 admin.log
-rw-r--r-- 1 me me    0 12月 14 13:16 AA-cluster-server-AA-0.log
-rw-r--r-- 1 me me    0 12月 14 13:16 AA-cluster-server-BB-0.log
-rw-r--r-- 1 me me    0 12月 14 13:16 AA-cluster-server-connector-0.log
-rw-r--r-- 1 me me    0 12月 14 13:16 AA-cluster-server-CC-0.log
-rw-r--r-- 1 me me    0 12月 14 13:16 AA-cluster-server-EE-0.log
-rw-r--r-- 1 me me    0 12月 14 13:16 AA-cluster-server-GG-0.log
-rw-r--r-- 1 me me    0 12月 14 13:16 AA-XXXXXX-1.log
-rw-r--r-- 1 me me    0 12月 14 13:16 AA-master-server-1.log
-rw-r--r-- 1 me me    0 12月 14 13:16 AA-undefined.log
-rw-r--r-- 1 me me    0 12月 14 13:16 BB-cluster-server-AA-0.log
-rw-r--r-- 1 me me    0 12月 14 13:16 BB-cluster-server-BB-0.log
-rw-r--r-- 1 me me    0 12月 14 13:16 BB-cluster-server-connector-0.log
-rw-r--r-- 1 me me    0 12月 14 13:16 BB-cluster-server-CC-0.log
-rw-r--r-- 1 me me    0 12月 14 13:16 BB-cluster-server-EE-0.log
-rw-r--r-- 1 me me    0 12月 14 13:16 BB-cluster-server-GG-0.log
-rw-r--r-- 1 me me    0 12月 14 13:16 BB-XXXXXX-1.log
-rw-r--r-- 1 me me    0 12月 14 13:16 BB-master-server-1.log
-rw-r--r-- 1 me me    0 12月 14 13:16 BB-undefined.log
-rw-r--r-- 1 me me    0 12月 14 13:16 con-log-cluster-server-AA-0.log
-rw-r--r-- 1 me me    0 12月 14 13:16 con-log-cluster-server-BB-0.log
-rw-r--r-- 1 me me    0 12月 14 13:16 con-log-cluster-server-connector-0.log
-rw-r--r-- 1 me me    0 12月 14 13:16 con-log-cluster-server-CC-0.log
-rw-r--r-- 1 me me    0 12月 14 13:16 con-log-cluster-server-EE-0.log
-rw-r--r-- 1 me me    0 12月 14 13:16 con-log-cluster-server-GG-0.log
-rw-r--r-- 1 me me    0 12月 14 13:16 con-log-XXXXXX-1.log
-rw-r--r-- 1 me me    0 12月 14 13:16 con-log-master-server-1.log
-rw-r--r-- 1 me me    0 12月 14 13:16 con-log-undefined.log
-rw-r--r-- 1 me me    0 12月 14 13:16 connector-cluster-server-AA-0.log
-rw-r--r-- 1 me me    0 12月 14 13:16 connector-cluster-server-BB-0.log
-rw-r--r-- 1 me me    0 12月 14 13:16 connector-cluster-server-connector-0.log
-rw-r--r-- 1 me me    0 12月 14 13:16 connector-cluster-server-CC-0.log
-rw-r--r-- 1 me me    0 12月 14 13:16 connector-cluster-server-EE-0.log
-rw-r--r-- 1 me me    0 12月 14 13:16 connector-cluster-server-GG-0.log
-rw-r--r-- 1 me me    0 12月 14 13:16 connector-XXXXXX-1.log
-rw-r--r-- 1 me me    0 12月 14 13:16 connector-master-server-1.log
-rw-r--r-- 1 me me    0 12月 14 13:16 connector-undefined.log
-rw-r--r-- 1 me me    0 12月 14 13:16 crash.log
-rw-r--r-- 1 me me    0 12月 14 13:16 CC-cluster-server-AA-0.log
-rw-r--r-- 1 me me    0 12月 14 13:16 CC-cluster-server-BB-0.log
-rw-r--r-- 1 me me    0 12月 14 13:16 CC-cluster-server-connector-0.log
-rw-r--r-- 1 me me    0 12月 14 13:16 CC-cluster-server-CC-0.log
-rw-r--r-- 1 me me    0 12月 14 13:16 CC-cluster-server-EE-0.log
-rw-r--r-- 1 me me    0 12月 14 13:16 CC-cluster-server-GG-0.log
-rw-r--r-- 1 me me    0 12月 14 13:16 CC-XXXXXX-1.log
-rw-r--r-- 1 me me    0 12月 14 13:16 CC-master-server-1.log
-rw-r--r-- 1 me me    0 12月 14 13:16 CC-undefined.log
-rw-r--r-- 1 me me    0 12月 14 13:16 DD-cluster-server-AA-0.log
-rw-r--r-- 1 me me    0 12月 14 13:16 DD-cluster-server-BB-0.log
-rw-r--r-- 1 me me    0 12月 14 13:16 DD-cluster-server-connector-0.log
-rw-r--r-- 1 me me    0 12月 14 13:16 DD-cluster-server-CC-0.log
-rw-r--r-- 1 me me    0 12月 14 13:16 DD-cluster-server-EE-0.log
-rw-r--r-- 1 me me    0 12月 14 13:16 DD-cluster-server-GG-0.log
-rw-r--r-- 1 me me    0 12月 14 13:16 DD-XXXXXX-1.log
-rw-r--r-- 1 me me    0 12月 14 13:16 DD-master-server-1.log
-rw-r--r-- 1 me me    0 12月 14 13:16 DD-undefined.log
-rw-r--r-- 1 me me    0 12月 14 13:16 forward-log-cluster-server-AA-0.log
-rw-r--r-- 1 me me    0 12月 14 13:16 forward-log-cluster-server-BB-0.log
-rw-r--r-- 1 me me    0 12月 14 13:16 forward-log-cluster-server-connector-0.log
-rw-r--r-- 1 me me    0 12月 14 13:16 forward-log-cluster-server-CC-0.log
-rw-r--r-- 1 me me    0 12月 14 13:16 forward-log-cluster-server-EE-0.log
-rw-r--r-- 1 me me    0 12月 14 13:16 forward-log-cluster-server-GG-0.log
-rw-r--r-- 1 me me    0 12月 14 13:16 forward-log-XXXXXX-1.log
-rw-r--r-- 1 me me    0 12月 14 13:16 forward-log-master-server-1.log
-rw-r--r-- 1 me me    0 12月 14 13:16 forward-log-undefined.log
-rw-r--r-- 1 me me    0 12月 14 13:16 XXXXXX-cluster-server-AA-0.log
-rw-r--r-- 1 me me    0 12月 14 13:16 XXXXXX-cluster-server-BB-0.log
-rw-r--r-- 1 me me    0 12月 14 13:16 XXXXXX-cluster-server-connector-0.log
-rw-r--r-- 1 me me    0 12月 14 13:16 XXXXXX-cluster-server-CC-0.log
-rw-r--r-- 1 me me    0 12月 14 13:16 XXXXXX-cluster-server-EE-0.log
-rw-r--r-- 1 me me    0 12月 14 13:16 XXXXXX-cluster-server-GG-0.log
-rw-r--r-- 1 me me    0 12月 14 13:16 XXXXXX-XXXXXX-1.log
-rw-r--r-- 1 me me    0 12月 14 13:16 XXXXXX-master-server-1.log
-rw-r--r-- 1 me me    0 12月 14 13:16 XXXXXX-undefined.log
-rw-r--r-- 1 me me    0 12月 14 13:16 pomelo-admin.log
-rw-r--r-- 1 me me  185 12月 14 13:16 pomelo-cluster-server-AA-0.log
-rw-r--r-- 1 me me  185 12月 14 13:16 pomelo-cluster-server-BB-0.log
-rw-r--r-- 1 me me  190 12月 14 13:16 pomelo-cluster-server-connector-0.log
-rw-r--r-- 1 me me  183 12月 14 13:16 pomelo-cluster-server-CC-0.log
-rw-r--r-- 1 me me  187 12月 14 13:16 pomelo-cluster-server-EE-0.log
-rw-r--r-- 1 me me  186 12月 14 13:16 pomelo-cluster-server-GG-0.log
-rw-r--r-- 1 me me  171 12月 14 13:16 pomelo-XXXXXX-1.log
-rw-r--r-- 1 me me  179 12月 14 13:16 pomelo-master-server-1.log
-rw-r--r-- 1 me me    0 12月 14 13:16 pomelo-rpc.log
-rw-r--r-- 1 me me 4.7K 12月 14 13:16 pomelo-undefined.log
-rw-r--r-- 1 me me    0 12月 14 13:16 rpc-debug-cluster-server-AA-0.log
-rw-r--r-- 1 me me    0 12月 14 13:16 rpc-debug-cluster-server-BB-0.log
-rw-r--r-- 1 me me    0 12月 14 13:16 rpc-debug-cluster-server-connector-0.log
-rw-r--r-- 1 me me    0 12月 14 13:16 rpc-debug-cluster-server-CC-0.log
-rw-r--r-- 1 me me    0 12月 14 13:16 rpc-debug-cluster-server-EE-0.log
-rw-r--r-- 1 me me    0 12月 14 13:16 rpc-debug-cluster-server-GG-0.log
-rw-r--r-- 1 me me    0 12月 14 13:16 rpc-debug-XXXXXX-1.log
-rw-r--r-- 1 me me    0 12月 14 13:16 rpc-debug-master-server-1.log
-rw-r--r-- 1 me me    0 12月 14 13:16 rpc-debug-undefined.log
-rw-r--r-- 1 me me    0 12月 14 13:16 rpc-log-cluster-server-AA-0.log
-rw-r--r-- 1 me me    0 12月 14 13:16 rpc-log-cluster-server-BB-0.log
-rw-r--r-- 1 me me    0 12月 14 13:16 rpc-log-cluster-server-connector-0.log
-rw-r--r-- 1 me me    0 12月 14 13:16 rpc-log-cluster-server-CC-0.log
-rw-r--r-- 1 me me    0 12月 14 13:16 rpc-log-cluster-server-EE-0.log
-rw-r--r-- 1 me me    0 12月 14 13:16 rpc-log-cluster-server-GG-0.log
-rw-r--r-- 1 me me    0 12月 14 13:16 rpc-log-XXXXXX-1.log
-rw-r--r-- 1 me me    0 12月 14 13:16 rpc-log-master-server-1.log
-rw-r--r-- 1 me me    0 12月 14 13:16 rpc-log-undefined.log
-rw-r--r-- 1 me me    0 12月 14 13:16 EE-cluster-server-AA-0.log
-rw-r--r-- 1 me me    0 12月 14 13:16 EE-cluster-server-BB-0.log
-rw-r--r-- 1 me me    0 12月 14 13:16 EE-cluster-server-connector-0.log
-rw-r--r-- 1 me me    0 12月 14 13:16 EE-cluster-server-CC-0.log
-rw-r--r-- 1 me me    0 12月 14 13:16 EE-cluster-server-EE-0.log
-rw-r--r-- 1 me me    0 12月 14 13:16 EE-cluster-server-GG-0.log
-rw-r--r-- 1 me me    0 12月 14 13:16 EE-XXXXXX-1.log
-rw-r--r-- 1 me me    0 12月 14 13:16 EE-master-server-1.log
-rw-r--r-- 1 me me    0 12月 14 13:16 EE-undefined.log
-rw-r--r-- 1 me me    0 12月 14 13:16 FF-cluster-server-AA-0.log
-rw-r--r-- 1 me me    0 12月 14 13:16 FF-cluster-server-BB-0.log
-rw-r--r-- 1 me me    0 12月 14 13:16 FF-cluster-server-connector-0.log
-rw-r--r-- 1 me me    0 12月 14 13:16 FF-cluster-server-CC-0.log
-rw-r--r-- 1 me me    0 12月 14 13:16 FF-cluster-server-EE-0.log
-rw-r--r-- 1 me me    0 12月 14 13:16 FF-cluster-server-GG-0.log
-rw-r--r-- 1 me me    0 12月 14 13:16 FF-XXXXXX-1.log
-rw-r--r-- 1 me me    0 12月 14 13:16 FF-master-server-1.log
-rw-r--r-- 1 me me    0 12月 14 13:16 FF-undefined.log
-rw-r--r-- 1 me me    0 12月 14 13:16 GG-cluster-server-AA-0.log
-rw-r--r-- 1 me me    0 12月 14 13:16 GG-cluster-server-BB-0.log
-rw-r--r-- 1 me me    0 12月 14 13:16 GG-cluster-server-connector-0.log
-rw-r--r-- 1 me me    0 12月 14 13:16 GG-cluster-server-CC-0.log
-rw-r--r-- 1 me me    0 12月 14 13:16 GG-cluster-server-EE-0.log
-rw-r--r-- 1 me me    0 12月 14 13:16 GG-cluster-server-GG-0.log
-rw-r--r-- 1 me me    0 12月 14 13:16 GG-XXXXXX-1.log
-rw-r--r-- 1 me me    0 12月 14 13:16 GG-master-server-1.log
-rw-r--r-- 1 me me    0 12月 14 13:16 GG-undefined.log
标签:无
zj8487 在 2014-12-14 13:48发布
zj8487 在 2014-12-15 10:31重新编辑 分享到 weibo
5 回复
#1 {1} py8765 2014-12-16 09:56 回复

8个进程意味着8台服务器,你如果配置配置了一些自己的category再加上pomelo本身的category,category数量*8就是日志文件的总量

zj8487 2014-12-16 15:37 回复

GG-undefined.log
这种是怎么回事?
而且日志是记录入这个文件的

#2 zj8487 2015-1-29 18:31 回复

日志真是神坑啊。
解决办法:
1,在app.js中重新配置日志:

 var logger = require('pomelo-logger');
 var app = pomelo.createApp();
  ...........................................
 app.configureLogger(logger);

2,使用了bearcat的话,需要关闭bearcat的日志初始化。
如果不关闭会出现XX-undefined.log,并写入不了日志

var contextPath = require.resolve('./context.json');
bearcat.createApp([contextPath], {
    BEARCAT_LOGGER: 'off',
    BEARCAT_HOT: 'off'
});
#3 {4} fantasyni 2015-1-30 09:13 回复

怀疑是

var app = pomelo.createApp();

var base = app.getBase();
var serverId = app.getServerId();
require('pomelo-logger').configure( base + "/config/" + NODE_ENV + "/log4js.json" , {serverId: serverId, base: base} );

这里的 serverId 是 undefined 导致,这个原因可能是启动的时候被bearcat扫描到了,进行了初始化,而这是pomelo app还没初始化

zj8487 2015-1-30 10:55 回复

@fantasyni
我定位的结果是这样的。

但是即使pomelo已经初始化,也会产生XX-undefined.log。
因为bearcat没有serverId 参数

zj8487 2015-1-30 10:56 回复

所以使用pomelo和bearcat时,必须关闭bearcat的日志初始化。

zj8487 2015-1-30 11:04 回复

@fantasyni
看错了你的回复了哈:
定位结果是:
1,如下初始化时,serverId是正常的。

var app = pomelo.createApp();

var base = app.getBase();
var serverId = app.getServerId();
require('pomelo-logger').configure( base + "/config/" + NODE_ENV + "/log4js.json" , {serverId: serverId, base: base} );

2,bearcat初始化参数里面没有serverId: serverId导致。
见bearcat日志初始化参数

if (process.env.BEARCAT_LOGGER !== 'off') {
    var originLoggerConfigPath = Path.join(cpath, Constant.LOGPATH);
    var presentLoggerConfigPath = Path.join(cpath, env, Constant.LOGPATH);
    if (FileUtil.existsSync(originLoggerConfigPath)) {
        require('pomelo-logger').configure(originLoggerConfigPath, {
            base: base
        });
    } else if (FileUtil.existsSync(presentLoggerConfigPath)) {
        require('pomelo-logger').configure(presentLoggerConfigPath, {
            base: base
        });
    } else {
        logger.error('logger file path configuration is error.');
    }
}
fantasyni 2015-1-31 18:10 回复

@zj8487 恩,这个确实是要注意的

#4 {1} wuxian 2015-2-2 15:51 回复

删除pomelo下面的pomelo-logger就好,不能多份共存

zj8487 2015-2-2 16:20 回复

删除太麻烦,每次部署都有去搞一下。

重新配置下更方便

#5 borisjia 2015-3-13 09:31 回复

收藏

回到顶部