mirror of
https://github.com/Unitech/pm2.git
synced 2025-12-08 20:35:53 +00:00
203 lines
6.2 KiB
JavaScript
203 lines
6.2 KiB
JavaScript
|
|
process.env.NODE_ENV = 'test';
|
|
|
|
var PM2 = require('../..');
|
|
var should = require('should');
|
|
var fs = require('fs');
|
|
var path = require('path');
|
|
|
|
describe('Programmatic log feature test', function() {
|
|
|
|
var proc1 = null;
|
|
var procs = [];
|
|
|
|
var pm2 = new PM2.custom({
|
|
cwd : __dirname + '/../fixtures'
|
|
});
|
|
|
|
before(function(done) {
|
|
this.timeout(5000);
|
|
|
|
pm2.delete('all', function() {
|
|
done();
|
|
});
|
|
});
|
|
|
|
after(function(done) {
|
|
pm2.disconnect(done);
|
|
});
|
|
|
|
afterEach(function(done) {
|
|
pm2.delete('all', done);
|
|
});
|
|
|
|
describe('Log merging', function() {
|
|
it('should process HAS post fixed logs with id (merge_logs: false)', function(done) {
|
|
pm2.start({
|
|
script: './echo.js',
|
|
error_file : 'error-echo.log',
|
|
out_file : 'out-echo.log'
|
|
}, function(err, procs) {
|
|
should(err).be.null();
|
|
|
|
var out_file = procs[0].pm2_env.pm_out_log_path;
|
|
var err_file = procs[0].pm2_env.pm_err_log_path;
|
|
|
|
out_file.should.containEql('out-echo-0.log');
|
|
err_file.should.containEql('error-echo-0.log');
|
|
|
|
setTimeout(function() {
|
|
fs.readFileSync(out_file).toString().should.containEql('echo.js');
|
|
fs.readFileSync(err_file).toString().should.containEql('echo.js-error');
|
|
done();
|
|
}, 500);
|
|
});
|
|
});
|
|
|
|
it('should process HAS NOT post fixed logs with id (merge_logs: true)', function(done) {
|
|
pm2.start({
|
|
script: './echo.js',
|
|
error_file : 'error-echo.log',
|
|
out_file : 'out-echo.log',
|
|
merge_logs : true
|
|
}, function(err, procs) {
|
|
should(err).be.null();
|
|
|
|
var out_file = procs[0].pm2_env.pm_out_log_path;
|
|
var err_file = procs[0].pm2_env.pm_err_log_path;
|
|
|
|
out_file.should.containEql('out-echo.log');
|
|
err_file.should.containEql('error-echo.log');
|
|
|
|
setTimeout(function() {
|
|
fs.readFileSync(out_file).toString().should.containEql('echo.js');
|
|
fs.readFileSync(err_file).toString().should.containEql('echo.js-error');
|
|
done();
|
|
}, 500);
|
|
});
|
|
});
|
|
|
|
it('should process HAS NOT post fixed logs with id and MERGED FILE (merge_logs: true)', function(done) {
|
|
pm2.start({
|
|
script: './echo.js',
|
|
error_file : 'error-echo.log',
|
|
out_file : 'out-echo.log',
|
|
log_file : 'merged.log',
|
|
merge_logs : true
|
|
}, function(err, procs) {
|
|
should(err).be.null();
|
|
|
|
var out_file = procs[0].pm2_env.pm_out_log_path;
|
|
var err_file = procs[0].pm2_env.pm_err_log_path;
|
|
var log_file = procs[0].pm2_env.pm_log_path;
|
|
|
|
out_file.should.containEql('out-echo.log');
|
|
err_file.should.containEql('error-echo.log');
|
|
log_file.should.containEql('merged.log');
|
|
|
|
setTimeout(function() {
|
|
fs.readFileSync(out_file).toString().should.containEql('echo.js');
|
|
fs.readFileSync(err_file).toString().should.containEql('echo.js-error');
|
|
fs.readFileSync(log_file).toString().should.containEql('echo.js-error');
|
|
fs.readFileSync(log_file).toString().should.containEql('echo.js');
|
|
done();
|
|
}, 500);
|
|
});
|
|
});
|
|
|
|
});
|
|
|
|
describe('Log timestamp', function() {
|
|
it('should every file be timestamped', function(done) {
|
|
pm2.start({
|
|
script : './echo.js',
|
|
error_file : 'error-echo.log',
|
|
out_file : 'out-echo.log',
|
|
log_file : 'merged.log',
|
|
merge_logs : true,
|
|
log_date_format : 'YYYY-MM-DD HH:mm Z'
|
|
}, function(err, procs) {
|
|
should(err).be.null();
|
|
|
|
var out_file = procs[0].pm2_env.pm_out_log_path;
|
|
var err_file = procs[0].pm2_env.pm_err_log_path;
|
|
var log_file = procs[0].pm2_env.pm_log_path;
|
|
|
|
out_file.should.containEql('out-echo.log');
|
|
err_file.should.containEql('error-echo.log');
|
|
log_file.should.containEql('merged.log');
|
|
|
|
setTimeout(function() {
|
|
fs.readFileSync(out_file).toString().should.containEql('20');
|
|
fs.readFileSync(err_file).toString().should.containEql('20');
|
|
fs.readFileSync(log_file).toString().should.containEql('20');
|
|
done();
|
|
}, 500);
|
|
});
|
|
});
|
|
});
|
|
|
|
describe('Disable logs', function() {
|
|
it('should start app with log disabled', function(done) {
|
|
try {
|
|
fs.writeFileSync(path.resolve('./test/fixtures/error-echo-disabled.log'), '');
|
|
fs.writeFileSync(path.resolve('./test/fixtures/out-echo-disabled.log'), '');
|
|
fs.writeFileSync(path.resolve('./test/fixtures/merged.log'), '');
|
|
} catch(e) {}
|
|
|
|
pm2.start({
|
|
script : './echo.js',
|
|
error_file : 'error-echo-disabled.log',
|
|
out_file : 'out-echo-disabled.log',
|
|
log_file : 'merged.log',
|
|
disable_logs : true,
|
|
merge_logs : true
|
|
}, function(err, procs) {
|
|
should(err).be.null();
|
|
|
|
var out_file = procs[0].pm2_env.pm_out_log_path;
|
|
var err_file = procs[0].pm2_env.pm_err_log_path;
|
|
var log_file = procs[0].pm2_env.pm_log_path;
|
|
|
|
setTimeout(function() {
|
|
fs.readFileSync(err_file).toString().should.eql('');
|
|
fs.readFileSync(out_file).toString().should.eql('');
|
|
done();
|
|
}, 500);
|
|
});
|
|
});
|
|
|
|
it('should start app with log disabled', function(done) {
|
|
try {
|
|
fs.writeFileSync(path.resolve('./test/fixtures/error-echo-disabled.log'), '');
|
|
fs.writeFileSync(path.resolve('./test/fixtures/out-echo-disabled.log'), '');
|
|
fs.writeFileSync(path.resolve('./test/fixtures/merged.log'), '');
|
|
} catch(e) {
|
|
}
|
|
|
|
pm2.start({
|
|
script : './echo.js',
|
|
error_file : '/dev/null',
|
|
out_file : '/dev/null',
|
|
log_file : '/dev/null',
|
|
disable_logs : true,
|
|
merge_logs : true
|
|
}, function(err, procs) {
|
|
should(err).be.null();
|
|
|
|
var out_file = procs[0].pm2_env.pm_out_log_path;
|
|
var err_file = procs[0].pm2_env.pm_err_log_path;
|
|
|
|
setTimeout(function() {
|
|
fs.readFileSync(err_file).toString().should.eql('');
|
|
fs.readFileSync(out_file).toString().should.eql('');
|
|
done();
|
|
}, 500);
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
|
|
});
|