Skip to content

Commit 9ea9f2d

Browse files
authored
improvement(log-level): make log level configurable via envvar (#1091)
1 parent 4cd707f commit 9ea9f2d

File tree

2 files changed

+28
-3
lines changed

2 files changed

+28
-3
lines changed

apps/sim/lib/env.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ export const env = createEnv({
8181
SENTRY_ORG: z.string().optional(), // Sentry organization for error tracking
8282
SENTRY_PROJECT: z.string().optional(), // Sentry project for error tracking
8383
SENTRY_AUTH_TOKEN: z.string().optional(), // Sentry authentication token
84+
LOG_LEVEL: z.enum(['DEBUG', 'INFO', 'WARN', 'ERROR']).optional(), // Minimum log level to display (defaults to ERROR in production, DEBUG in development)
8485

8586
// External Services
8687
JWT_SECRET: z.string().min(1).optional(), // JWT signing secret for custom tokens

apps/sim/lib/logs/console/logger.ts

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,30 @@ export enum LogLevel {
2929
ERROR = 'ERROR',
3030
}
3131

32+
/**
33+
* Get the minimum log level from environment variable or use defaults
34+
* - Development: DEBUG (show all logs)
35+
* - Production: ERROR (only show errors, but can be overridden by LOG_LEVEL env var)
36+
* - Test: ERROR (only show errors in tests)
37+
*/
38+
const getMinLogLevel = (): LogLevel => {
39+
if (env.LOG_LEVEL) {
40+
return env.LOG_LEVEL as LogLevel
41+
}
42+
43+
const ENV = (env.NODE_ENV || 'development') as string
44+
switch (ENV) {
45+
case 'development':
46+
return LogLevel.DEBUG
47+
case 'production':
48+
return LogLevel.ERROR
49+
case 'test':
50+
return LogLevel.ERROR
51+
default:
52+
return LogLevel.DEBUG
53+
}
54+
}
55+
3256
/**
3357
* Configuration for different environments
3458
*
@@ -40,17 +64,17 @@ export enum LogLevel {
4064
const LOG_CONFIG = {
4165
development: {
4266
enabled: true,
43-
minLevel: LogLevel.DEBUG, // Show all logs in development
67+
minLevel: getMinLogLevel(),
4468
colorize: true,
4569
},
4670
production: {
4771
enabled: true, // Will be checked at runtime
48-
minLevel: LogLevel.ERROR,
72+
minLevel: getMinLogLevel(),
4973
colorize: false,
5074
},
5175
test: {
5276
enabled: false, // Disable logs in test environment
53-
minLevel: LogLevel.ERROR,
77+
minLevel: getMinLogLevel(),
5478
colorize: false,
5579
},
5680
}

0 commit comments

Comments
 (0)