node-karin
Version:
Lightweight, efficient, concise, and stable robot framework.
110 lines (107 loc) • 3.96 kB
TypeScript
import EventEmitter from 'events';
import chalk__default from 'chalk';
import { Logger as Logger$1 } from 'log4js';
/**
* @description 所有日志等级
* @description 请使用`LogMethodNames`类型来获取日志方法名称
*/
type LoggerLevel = 'trace' | 'debug' | 'info' | 'warn' | 'error' | 'fatal' | 'mark' | 'off';
/** 日志方法名称 */
type LogMethodNames = Exclude<LoggerLevel, 'off'>;
/** 仅包含日志方法的Logger类型 */
type LogMethodsOnly = Pick<Logger, LogMethodNames>;
/**
* @description 日志接口
*/
interface Logger extends Logger$1 {
/** @description chalk模块 */
chalk: typeof chalk__default;
/** @description 将文本设置为红色 */
red: typeof chalk__default.red;
/** @description 将文本设置为绿色 */
green: typeof chalk__default.green;
/** @description 将文本设置为黄色 */
yellow: typeof chalk__default.yellow;
/** @description 将文本设置为蓝色 */
blue: typeof chalk__default.blue;
/** @description 将文本设置为品红色 */
magenta: typeof chalk__default.magenta;
/** @description 将文本设置为青色 */
cyan: typeof chalk__default.cyan;
/** @description 将文本设置为白色 */
white: typeof chalk__default.white;
/** @description 将文本设置为灰色 */
gray: typeof chalk__default.gray;
/** @description 将文本设置为紫色 */
violet: ReturnType<typeof chalk__default.hex>;
/** @description 将文本设置为触发函数的颜色 */
fnc: ReturnType<typeof chalk__default.hex>;
/**
* @description 打印Bot前缀日志
* @param level - 日志等级
* @param id - Bot ID
* @param args - 日志内容
*/
bot: (level: LogMethodNames, id: string, ...args: any[]) => void;
/** @description 打印追踪日志 */
trace(...args: any[]): void;
/** @description 打印调试日志 */
debug(...args: any[]): void;
/** @description 打印信息日志 */
info(...args: any[]): void;
/** @description 打印警告日志 */
warn(...args: any[]): void;
/** @description 打印错误日志 */
error(...args: any[]): void;
/** @description 打印致命日志 */
fatal(...args: any[]): void;
/** @description 打印标记日志 */
mark(...args: any[]): void;
/** @description 关闭日志 */
off(): void;
/** @description 打印日志 跟`info`日志相同 */
log(...args: any[]): void;
}
/**
* @description 文件日志配置
*/
interface FileLogConfig {
/** @description 是否启用文件日志 @default false */
enabled: boolean;
/** @description 日志文件目录 @default 'logs' */
dir: string;
/** @description 文件日志级别(默认与控制台相同) */
level?: LoggerLevel;
/** @description 日志文件保留天数 @default 14 */
daysToKeep: number;
/**
* @description 是否启用整体化模式(按日期每天一个日志文件)
* @default true
*/
enableWholeMode: boolean;
/**
* @description 是否启用碎片化模式(按大小分片)
* @default false
*/
enableFragmentMode: boolean;
/** @description 碎片化模式下,单个日志文件的最大大小(MB) @default 10 */
maxFileSize: number;
/** @description 是否单独保存错误和致命日志 @default true */
separateErrorLog: boolean;
}
/**
* @description 日志配置
*/
interface LoggerConfig {
/** @description 日志级别 @default 'info' */
level: LoggerLevel;
/** @description `logger.fnc`自定义颜色 @default '#FFFF00' */
color?: string;
/** @description 文件日志配置 */
file: FileLogConfig;
}
/**
* @description 默认配置
*/
declare const DEFAULT_LOGGER_CONFIG: LoggerConfig;
export { DEFAULT_LOGGER_CONFIG as D, type FileLogConfig as F, type Logger as L, type LoggerLevel as a, type LogMethodNames as b, type LogMethodsOnly as c, type LoggerConfig as d };