pip-services3-components-node
Version:
Component definitions for Pip.Services in Node.js
75 lines (69 loc) • 2.55 kB
text/typescript
/** @module log */
import { StringConverter } from 'pip-services3-commons-node';
import { LogLevel } from './LogLevel';
/**
* Helper class to convert log level values.
*
* @see [[LogLevel]]
*/
export class LogLevelConverter {
/**
* Converts numbers and strings to standard log level values.
*
* @param value a value to be converted
* @param defaultValue a default value if conversion is not possible
* @returns converted log level
*/
public static toLogLevel(value: any, defaultValue: LogLevel = LogLevel.Info): LogLevel {
if (value == null) return LogLevel.Info;
value = StringConverter.toString(value).toUpperCase();
if ("0" == value || "NOTHING" == value || "NONE" == value)
return LogLevel.None;
else if ("1" == value || "FATAL" == value)
return LogLevel.Fatal;
else if ("2" == value || "ERROR" == value)
return LogLevel.Error;
else if ("3" == value || "WARN" == value || "WARNING" == value)
return LogLevel.Warn;
else if ("4" == value || "INFO" == value)
return LogLevel.Info;
else if ("5" == value || "DEBUG" == value)
return LogLevel.Debug;
else if ("6" == value || "TRACE" == value)
return LogLevel.Trace;
else
return defaultValue;
}
/**
* Converts log level to a string.
*
* @param level a log level to convert
* @returns log level name string.
*
* @see [[LogLevel]]
*/
public static toString(level: LogLevel): string {
if (level == LogLevel.Fatal) return "FATAL";
if (level == LogLevel.Error) return "ERROR";
if (level == LogLevel.Warn) return "WARN";
if (level == LogLevel.Info) return "INFO";
if (level == LogLevel.Debug) return "DEBUG";
if (level == LogLevel.Trace) return "TRACE";
return "UNDEF";
}
/**
* Converts log level to a number.
*
* @param level a log level to convert.
* @returns log level number value.
*/
public static toInteger(level: LogLevel): number {
if (level == LogLevel.Fatal) return 1;
if (level == LogLevel.Error) return 2;
if (level == LogLevel.Warn) return 3;
if (level == LogLevel.Info) return 4;
if (level == LogLevel.Debug) return 5;
if (level == LogLevel.Trace) return 6;
return 0;
}
}