1
- import { getEnvironmentOptionsList } from '@endo/env-options' ;
1
+ import {
2
+ getEnvironmentOptionsList ,
3
+ getEnvironmentOption ,
4
+ } from '@endo/env-options' ;
2
5
import anylogger from 'anylogger' ;
3
6
4
7
// Turn on debugging output with DEBUG=agoric
@@ -9,8 +12,10 @@ const isVatLogNameColon = nameColon =>
9
12
[ 'SwingSet:ls:' , 'SwingSet:vat:' ] . some ( sel => nameColon . startsWith ( sel ) ) ;
10
13
11
14
// Turn on debugging output with DEBUG=agoric or DEBUG=agoric:${level}
12
-
13
- let selectedLevel = 'info' ;
15
+ let selectedLevel =
16
+ DEBUG_LIST . length || getEnvironmentOption ( 'DEBUG' , 'unset' ) === 'unset'
17
+ ? 'log'
18
+ : 'info' ;
14
19
for ( const selector of DEBUG_LIST ) {
15
20
const parts = selector . split ( ':' ) ;
16
21
if ( parts [ 0 ] !== 'agoric' ) {
@@ -22,33 +27,29 @@ for (const selector of DEBUG_LIST) {
22
27
selectedLevel = 'debug' ;
23
28
}
24
29
}
25
- const defaultLevel = anylogger . levels [ selectedLevel ] ;
30
+ const selectedCode = anylogger . levels [ selectedLevel ] ;
31
+ const globalCode = selectedCode === undefined ? - Infinity : selectedCode ;
26
32
27
33
const oldExt = anylogger . ext ;
28
34
anylogger . ext = ( l , o ) => {
29
35
l = oldExt ( l , o ) ;
30
- l . enabledFor = lvl => defaultLevel >= anylogger . levels [ lvl ] ;
36
+ l . enabledFor = lvl => globalCode >= anylogger . levels [ lvl ] ;
31
37
32
38
const prefix = l . name . replace ( / : / g, ': ' ) ;
33
39
34
40
const nameColon = `${ l . name } :` ;
35
41
const logBelongsToVat = isVatLogNameColon ( nameColon ) ;
36
42
37
- const logMatchesSelector = DEBUG_LIST . some ( selector => {
38
- const selectorColon = `${ selector } :` ;
39
- if ( ! logBelongsToVat ) {
40
- return true ;
41
- }
42
-
43
- // If this is a vat log, then it is enabled if it matches the selector.
44
- return nameColon . startsWith ( selectorColon ) ;
45
- } ) ;
43
+ // If this is a vat log, then it is enabled by a selector in DEBUG_LIST.
44
+ const logMatchesSelector =
45
+ ! logBelongsToVat ||
46
+ DEBUG_LIST . some ( selector => {
47
+ const selectorColon = `${ selector } :` ;
48
+ return nameColon . startsWith ( selectorColon ) ;
49
+ } ) ;
46
50
47
51
for ( const [ level , code ] of Object . entries ( anylogger . levels ) ) {
48
- if ( ! logMatchesSelector || code > defaultLevel ) {
49
- // Disable printing.
50
- l [ level ] = ( ) => { } ;
51
- } else {
52
+ if ( logMatchesSelector && globalCode >= code ) {
52
53
// Enable the printing with a prefix.
53
54
const doLog = l [ level ] ;
54
55
if ( doLog ) {
@@ -60,6 +61,9 @@ anylogger.ext = (l, o) => {
60
61
} else {
61
62
l [ level ] = ( ) => { } ;
62
63
}
64
+ } else {
65
+ // Disable printing.
66
+ l [ level ] = ( ) => { } ;
63
67
}
64
68
}
65
69
return l ;
0 commit comments