Skip to content

Commit

Permalink
Add -v flag to enable debug logging
Browse files Browse the repository at this point in the history
  • Loading branch information
Jalle19 committed Aug 8, 2024
1 parent b761949 commit 52e8ab4
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 7 deletions.
10 changes: 9 additions & 1 deletion src/eachwatt.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import { httpRequestHandler } from './http/server'
import { WebSocketPublisherImpl } from './publisher/websocket'
import { PublisherType } from './publisher'
import { pollCharacteristicsSensors } from './characteristics'
import { createLogger } from './logger'
import { createLogger, LogLevel, setLogLevel } from './logger'
import { setRequestTimeout as setHttpRequestTimeout } from './http/client'
import { setRequestTimeout as setModbusRequestTimeout } from './modbus/client'
import { applyFilters } from './filter/filter'
Expand All @@ -26,10 +26,18 @@ const argv = yargs(process.argv.slice(2))
demandOption: true,
alias: 'c',
},
'verbose': {
description: 'Enable verbose logging',
alias: 'v',
},
})
.parseSync()

const logger = createLogger('main')
if (argv.verbose) {
logger.info('Setting log level to DEBUG')
setLogLevel(LogLevel.DEBUG)
}

const mainPollerFunc = async (config: Config) => {
const now = Date.now()
Expand Down
14 changes: 8 additions & 6 deletions src/logger.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
import winston, { Logger } from 'winston'

const DEFAULT_LOG_LEVEL = 'info'
export enum LogLevel {
INFO = 'info',
DEBUG = 'debug',
}

// Define log transports here, so we can change the log level later
const transports = [new winston.transports.Console()]
Expand All @@ -9,14 +12,13 @@ const logFormat = winston.format.printf(({ level, message, label, timestamp }) =
return `${timestamp} [${label}] ${level}: ${message}`
})

// export const setLogLevel = (logger: Logger, level: string) => {
// logger.info(`Setting log level to ${level}`)
// transports[0].level = level
// }
export const setLogLevel = (level: LogLevel) => {
transports[0].level = level
}

export const createLogger = (module: string): Logger => {
return winston.createLogger({
'level': DEFAULT_LOG_LEVEL,
'level': LogLevel.INFO,
'format': winston.format.combine(winston.format.label({ label: module }), winston.format.timestamp(), logFormat),
'transports': transports,
})
Expand Down

0 comments on commit 52e8ab4

Please sign in to comment.