@luckyorange/utilities-cron-logger
v1.1.4
Published
More helpful log messages for cron jobs
Keywords
Readme
LuckyLogger
LuckyLogger is a lightweight logging utility built specifically for cron jobs.
It uses Google Cloud Logging and can optionally patch console.log, console.error, etc. to log to GCP automatically.
Features
- Simple setup with minimal configuration
- Automatically formats logs with proper severity levels
- Filters logs based on a minimum log level
- Adds Kubernetes pod and container metadata automatically
- (New!) Optional patching of
consolemethods to log to GCP
Installation
npm install @luckyorange/utilities-cron-loggerUsage
1. Basic Logging
const LuckyLogger = require('@luckyorange/utilities-cron-logger')
// Initialize with the name of your cron job
const logger = new LuckyLogger('session-count-check')2. Logging to GCP
logger.info('Starting session count check')
logger.debug('Session count details', { sessionCount: 42 })
logger.warn('Session count is lower than expected')
logger.error('Failed to fetch session data')
logger.critical('Session service unreachable')Constructor
new LuckyLogger(cronName, options = {})| Parameter | Type | Default | Description |
|-------------|----------|--------------|-------------|
| cronName | string | (required) | Name of the cron job (used for the log name and container name) |
| options | object | {} | Configuration options (see below) |
Options
| Option | Type | Default | Description |
|----------------|-----------|-----------|-------------|
| minLogLevel | string | 'INFO' | Minimum severity to log (DEBUG, INFO, WARNING, ERROR, CRITICAL) |
| patchConsole | boolean | false | Whether to patch console.log, console.warn, etc. to log to GCP |
Examples
Basic usage with defaults:
const logger = new LuckyLogger('session-count-check')With options:
const logger = new LuckyLogger('session-count-check', {
minLogLevel: 'ERROR',
patchConsole: true
})Just enabling console patching:
const logger = new LuckyLogger('session-count-check', { patchConsole: true })
console.log('This logs to both the terminal and Google Cloud Logging')Log Methods
Each method corresponds to a severity level in Google Cloud Logging:
| Method | Severity |
|---------------------------------|------------|
| logger.debug(message, metadata) | DEBUG |
| logger.info(message, metadata) | INFO |
| logger.warn(message, metadata) | WARNING |
| logger.error(message, metadata) | ERROR |
| logger.critical(message, metadata)| CRITICAL |
message: a string describing the log eventmetadata: (optional) an object with additional information (e.g., IDs, counts, etc.)
Optional: Restore Console
If you enabled patchConsole and later want to undo it:
logger.restoreConsole()
console.log('Now this logs only to the terminal')Environment Variables
HOSTNAME— auto-populated in Buddy; used as thepod_nameCONTAINER_NAME— auto-populated in Buddy or container environments
Example
const LuckyLogger = require('@luckyorange/utilities-cron-logger')
const logger = new LuckyLogger('session-count-check', {
minLogLevel: 'INFO',
patchConsole: true
})
logger.info('Cron started')
console.warn('This is also sent to GCP because patchConsole is enabled')
try {
logger.debug('Fetched session data', { sessions: 500 })
} catch (error) {
logger.error('Error during cron execution', { error: error.message })
}Optional: Restore Console
If you enable patchConsole, you can later restore the original console methods to stop logging to Google Cloud.
Example
const LuckyLogger = require('@luckyorange/utilities-cron-logger')
// Enable console patching
const logger = new LuckyLogger('session-count-check', { patchConsole: true })
console.log('This goes to both terminal and GCP')
// Restore original console behavior
logger.restoreConsole()
console.log('This now logs to terminal only')This is useful if you only want GCP logging during certain phases of a script, or for fine-grained control in tests, parallel jobs, or debugging.
License
Internal use only — property of Lucky Orange
