All tasks completed (2026-03-23 → 2026-04-06). This section records the implementation scope for future reference.
@growi/logger shared package — package.json (pino v9.x, minimatch, pino-pretty peer), TypeScript ESM config, vitest setup, package entry points (main/types/browser)EnvVarParser (reads DEBUG/TRACE/INFO/WARN/ERROR/FATAL), LevelResolver (minimatch glob matching, env-override precedence)TransportFactory for Node.js dev (bunyan-format), prod+FORMAT_NODE_LOG (pino-pretty singleLine), prod default (raw JSON), and browser (console)initializeLoggerFactory (spawns one Worker thread), loggerFactory(name) (child logger cache, level resolution)singleLine: dev=false (multi-line context), prod+FORMAT_NODE_LOG=true (concise one-liners)customSuccessMessage, customErrorMessage, customLogLevel in pino-http configsrc/dev/bunyan-format.ts) — HH:mm:ss.SSSZ LEVEL name: message format, colorization, NO_COLOR support, pino.transport() worker threadcreateHttpLoggerMiddleware — encapsulate pino-http in @growi/logger; move morgan-like options inside; add to @growi/logger depssrc/dev/) and browser bundle fix — lazy pino-http import, extended ignore field in bunyan-format