From 16cf2bb7105cd5659a89d2c6e690a416e88df5c4 Mon Sep 17 00:00:00 2001 From: Michael FIG Date: Tue, 16 Mar 2021 13:47:55 -0600 Subject: [PATCH] feat: silence the vat logs for ag-chain-cosmos This helps quell the anxiety that validators get when bizarre application errors happen. They still appear when running locally or an ag-solo, but not on-chain. To reenable, use: `DEBUG=SwingSet:vat,SwingSet:ls ag-chain-cosmos start` --- .../cosmic-swingset/lib/ag-solo/fake-chain.js | 8 +++---- .../cosmic-swingset/lib/anylogger-agoric.js | 22 ++++++++++++++----- .../cosmic-swingset/lib/chain-entrypoint.js | 5 +++++ 3 files changed, 25 insertions(+), 10 deletions(-) diff --git a/packages/cosmic-swingset/lib/ag-solo/fake-chain.js b/packages/cosmic-swingset/lib/ag-solo/fake-chain.js index 7717dcce1b6..48286c0e87f 100644 --- a/packages/cosmic-swingset/lib/ag-solo/fake-chain.js +++ b/packages/cosmic-swingset/lib/ag-solo/fake-chain.js @@ -17,7 +17,7 @@ import { makeWithQueue } from './vats/queue'; import { makeBatchedDeliver } from './batched-deliver'; import { getMeterProvider } from '../kernel-stats'; -const log = anylogger('fake-chain'); +const console = anylogger('fake-chain'); const PRETEND_BLOCK_DELAY = 5; const scaleBlockTime = ms => Math.floor(ms / 1000); @@ -66,7 +66,7 @@ export async function connectToFakeChain(basedir, GCI, delay, inbound) { assert(!replay, X`Replay not implemented`); } - const meterProvider = getMeterProvider(log, process.env); + const meterProvider = getMeterProvider(console, process.env); const s = await launch( stateDBdir, mailboxStorage, @@ -133,7 +133,7 @@ export async function connectToFakeChain(basedir, GCI, delay, inbound) { thisBlock = []; blockTime += scaleBlockTime(Date.now() - actualStart); } catch (e) { - log.error(`error fake processing`, e); + console.error(`error fake processing`, e); } clearTimeout(nextBlockTimeout); @@ -148,7 +148,7 @@ export async function connectToFakeChain(basedir, GCI, delay, inbound) { let totalDeliveries = 0; async function deliver(newMessages, acknum) { totalDeliveries += 1; - console.log(`delivering to ${GCI} (trips=${totalDeliveries})`); + console.info(`delivering to ${GCI} (trips=${totalDeliveries})`); intoChain.push([newMessages, acknum]); if (!delay) { diff --git a/packages/cosmic-swingset/lib/anylogger-agoric.js b/packages/cosmic-swingset/lib/anylogger-agoric.js index bdfe4c152fa..63b6bcaff41 100644 --- a/packages/cosmic-swingset/lib/anylogger-agoric.js +++ b/packages/cosmic-swingset/lib/anylogger-agoric.js @@ -4,15 +4,24 @@ import anylogger from 'anylogger'; // Turn on debugging output with DEBUG=agoric let debugging; +const filterOutPrefixes = []; if (process.env.DEBUG === undefined) { // DEBUG not set, default to log level. debugging = 'log'; -} else if (process.env.DEBUG.includes('agoric')) { - // DEBUG set and we're enabled; verbose. - debugging = 'debug'; } else { - // DEBUG set but we're not enabled; quieter than normal. - debugging = 'info'; + if (!process.env.DEBUG.includes('SwingSet:vat')) { + filterOutPrefixes.push('SwingSet:vat:'); + } + if (!process.env.DEBUG.includes('SwingSet:ls')) { + filterOutPrefixes.push('SwingSet:ls:'); + } + if (process.env.DEBUG.includes('agoric')) { + // DEBUG set and we're enabled; verbose. + debugging = 'debug'; + } else { + // DEBUG set but we're not enabled; quieter than normal. + debugging = 'info'; + } } const defaultLevel = anylogger.levels[debugging]; @@ -22,8 +31,9 @@ anylogger.ext = (l, o) => { l.enabledFor = lvl => defaultLevel >= anylogger.levels[lvl]; const prefix = l.name.replace(/:/g, ': '); + const filteredOut = filterOutPrefixes.find(pfx => l.name.startsWith(pfx)); for (const [level, code] of Object.entries(anylogger.levels)) { - if (code > defaultLevel) { + if (filteredOut || code > defaultLevel) { // Disable printing. l[level] = () => {}; } else { diff --git a/packages/cosmic-swingset/lib/chain-entrypoint.js b/packages/cosmic-swingset/lib/chain-entrypoint.js index 04bd1216fa0..78721d3d537 100644 --- a/packages/cosmic-swingset/lib/chain-entrypoint.js +++ b/packages/cosmic-swingset/lib/chain-entrypoint.js @@ -12,6 +12,11 @@ const agcc = require('@agoric/cosmos'); // (dep chain: temp->glob->minimatch->brace-expansion) esmRequire('@agoric/install-metering-and-ses'); +if (!process.env.DEBUG) { + // By default, disable debugging. + process.env.DEBUG = ''; +} + const path = require('path'); const os = require('os');