Browse Source

feat(logger): 添加固定命名空间的日志记录功能

为 Logger 类添加 createNamespace 方法,用于创建带有固定命名空间的日志记录器。该功能简化了在多个地方使用相同命名空间的日志记录操作,提高了代码的可读性和维护性。
feat/icon
npmrun 2 weeks ago
parent
commit
7035429775
  1. 18
      packages/logger/main.ts
  2. 28
      packages/logger/preload.ts

18
packages/logger/main.ts

@ -257,6 +257,24 @@ export class Logger {
public fatal(namespace: string, ...messages: any[]): void {
this.logWithLevel(LogLevel.FATAL, namespace, ...messages)
}
/**
*
* @param namespace
* @returns
*/
public createNamespace(namespace: string) {
return {
trace: (...messages: any[]) => this.trace(namespace, ...messages),
debug: (...messages: any[]) => this.debug(namespace, ...messages),
info: (...messages: any[]) => this.info(namespace, ...messages),
warn: (...messages: any[]) => this.warn(namespace, ...messages),
error: (...messages: any[]) => this.error(namespace, ...messages),
fatal: (...messages: any[]) => this.fatal(namespace, ...messages),
setLevel: (level: LogLevel) => this.setLevel(level),
getLevel: () => this.getLevel(),
}
}
}
// 默认实例

28
packages/logger/preload.ts

@ -12,6 +12,20 @@ interface IRendererLogger {
error(namespace: string, ...messages: any[]): void
fatal(namespace: string, ...messages: any[]): void
setLevel(level: LogLevel): void
createNamespace(namespace: string): INamespacedLogger
}
/**
*
*/
interface INamespacedLogger {
trace(...messages: any[]): void
debug(...messages: any[]): void
info(...messages: any[]): void
warn(...messages: any[]): void
error(...messages: any[]): void
fatal(...messages: any[]): void
setLevel(level: LogLevel): void
}
// 日志级别名称映射
@ -109,6 +123,20 @@ const createRendererLogger = (): IRendererLogger => {
// 设置日志级别(可选,如果需要在渲染进程中动态调整日志级别)
ipcRenderer.send("logger:setLevel", level)
},
createNamespace(namespace: string): INamespacedLogger {
return {
trace: (...messages: any[]) => sendLog(LogLevel.TRACE, namespace, ...messages),
debug: (...messages: any[]) => sendLog(LogLevel.DEBUG, namespace, ...messages),
info: (...messages: any[]) => sendLog(LogLevel.INFO, namespace, ...messages),
warn: (...messages: any[]) => sendLog(LogLevel.WARN, namespace, ...messages),
error: (...messages: any[]) => sendLog(LogLevel.ERROR, namespace, ...messages),
fatal: (...messages: any[]) => sendLog(LogLevel.FATAL, namespace, ...messages),
setLevel: (level: LogLevel) => {
currentLevel = level
ipcRenderer.send("logger:setLevel", level)
}
}
},
}
}

Loading…
Cancel
Save