@betshare/infra-logging
v0.1.0
Published
Shared Winston logger + Slack alerting for BetShareMarket services
Readme
@betshare/infra-logging
Shared Winston logger + Slack alerting for BetShareMarket services. Extracted from
the per-service src/utils/logger.ts copies (see docs/rfc-shared-logging-slack-package.md).
Install
In production, consume from the private registry, version-pinned per service:
npm install @betshare/infra-logging// package.json
"@betshare/infra-logging": "^0.1.0"Usage
A service's src/utils/logger.ts collapses to:
import { createLogger } from "@betshare/infra-logging";
export default createLogger({ service: "odds-worker" });Native winston is returned, so .debug/.info/.warn/.error and .child({ correlationId })
work unchanged at every call site.
Behavior
- Console +
error.log+combined.logfile transports are always on. - A Slack transport (
#errors,ErrorBot,:warning:,errorlevel) is added only when a webhook is resolved — if it is empty, no Slack transport is created (improvement over the old copies, which attached a SlackHook with an emptywebhookUrl).
Env fallback (migration safety)
Level resolves as: options.level ?? LOG_LEVEL ?? LOGGER_LEVEL ?? "info". Reading both env
names means services using either LOG_LEVEL (api-server) or LOGGER_LEVEL (odds-worker) keep
their effective level on cutover with no .env edits. Webhook resolves as:
options.slackWebhook ?? SLACK_WEBHOOK ?? "". The package does not call dotenv — that stays in
the service entrypoint.
