Skip to content

Commit

Permalink
Merge pull request #5660 from bawjensen/fix-namespace-lines-0
Browse files Browse the repository at this point in the history
Fix matching logic for logs from namespace when lines = 0
  • Loading branch information
Unitech committed Oct 6, 2023
2 parents b2193ab + fd2dc00 commit 500ef7d
Show file tree
Hide file tree
Showing 4 changed files with 45 additions and 3 deletions.
8 changes: 5 additions & 3 deletions lib/API/Log.js
Expand Up @@ -98,9 +98,11 @@ Log.stream = function(Client, id, raw, timestamp, exclusive, highlight) {
var min_padding = 3

bus.on('log:*', function(type, packet) {
if (id !== 'all'
&& packet.process.name != id
&& packet.process.pm_id != id)
var isMatchingProcess = id === 'all'
|| packet.process.name === id
|| packet.process.pm_id === id
|| packet.process.namespace === id;
if (!isMatchingProcess)
return;

if ((type === 'out' && exclusive === 'err')
Expand Down
1 change: 1 addition & 0 deletions test/e2e.sh
Expand Up @@ -92,6 +92,7 @@ runTest ./test/e2e/logs/log-entire.sh
runTest ./test/e2e/logs/log-null.sh
runTest ./test/e2e/logs/log-json.sh
runTest ./test/e2e/logs/log-create-not-exist-dir.sh
runTest ./test/e2e/logs/log-namespace.sh

# MODULES
runTest ./test/e2e/modules/get-set.sh
Expand Down
35 changes: 35 additions & 0 deletions test/e2e/logs/log-namespace.sh
@@ -0,0 +1,35 @@
#!/usr/bin/env bash

SRC=$(cd $(dirname "$0"); pwd)
source "${SRC}/../include.sh"

cd $file_path/log-namespace/

LOG_PATH_PREFIX="${SRC}/__log-namespace__"

rm -rf "${LOG_PATH_PREFIX}"
mkdir "${LOG_PATH_PREFIX}"

$pm2 start echo.js --namespace e2e-test-log-namespace

LOG_FILE_BASELINE="${LOG_PATH_PREFIX}/baseline-out.log"
$pm2 logs e2e-test-log-namespace > $LOG_FILE_BASELINE & # backgrounded - will be stopped by `$pm2 delete all`

sleep 2 # should leave time for ~40 "tick" lines

# Using -q to avoid spamming, since there will be a fair few "tick" matches
grep -q "tick" ${LOG_FILE_BASELINE}
spec "Should have 'tick' in the log file"

LOG_FILE_LINES_ZERO="${LOG_PATH_PREFIX}/lines-zero-out.log"
$pm2 logs e2e-test-log-namespace --lines 0 > $LOG_FILE_LINES_ZERO &

sleep 2 # should leave time for ~40 "tick" lines

# Using -q to avoid spamming, since there will be a fair few "tick" matches
grep -q "tick" ${LOG_FILE_LINES_ZERO}
spec "Should have 'tick' in the log file even if using --lines 0"

cd ${SRC}
rm -rf "${LOG_PATH_PREFIX}"
$pm2 delete all
4 changes: 4 additions & 0 deletions test/fixtures/log-namespace/echo.js
@@ -0,0 +1,4 @@
console.log("start");
setInterval(function () {
console.log("tick");
}, 50);

0 comments on commit 500ef7d

Please sign in to comment.