AbdulElahGwaith's picture
Upload folder using huggingface_hub
88df9e4 verified
/*
The log level is controlled by the `LOG_LEVEL` environment variable, where lower log levels = more verbose
examples:
if log level is 'info', only 'info', 'warn', and 'error' logs will be output
if log level is 'debug', all logs will be output
if log level is 'error', only 'error' logs will be output
*/
export const LOG_LEVELS = {
error: 0,
warn: 1,
info: 2,
debug: 3,
} as const
type LogLevel = keyof typeof LOG_LEVELS
type LogLevelValue = (typeof LOG_LEVELS)[LogLevel]
function isValidLogLevel(level: string): level is LogLevel {
return level in LOG_LEVELS
}
// We set the log level based on the LOG_LEVEL environment variable
// but default to:
// - 'info' in development
// - 'debug' in production
// - 'debug' in test - this is because `vitest` turns off logs unless --silent=false is passed
export function getLogLevelNumber(): LogLevelValue {
let defaultLogLevel: LogLevel = 'info'
if (
!process.env.LOG_LEVEL &&
(process.env.NODE_ENV === 'production' || process.env.NODE_ENV === 'test')
) {
defaultLogLevel = 'debug'
}
const envLogLevel = process.env.LOG_LEVEL?.toLowerCase() || defaultLogLevel
const logLevel = isValidLogLevel(envLogLevel) ? envLogLevel : defaultLogLevel
return LOG_LEVELS[logLevel]
}
export const useProductionLogging = (): boolean => {
return (
(process.env.NODE_ENV === 'production' && !process.env.CI) ||
process.env.LOG_LIKE_PRODUCTION === 'true'
)
}