Skip to content

Commit

Permalink
improv: abtract the log to logger package
Browse files Browse the repository at this point in the history
  • Loading branch information
winprn committed Oct 29, 2024
1 parent e4293bf commit cb5d979
Show file tree
Hide file tree
Showing 7 changed files with 35 additions and 20 deletions.
3 changes: 2 additions & 1 deletion packages/logger/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
"test": "vitest"
},
"dependencies": {
"setimmediate": "^1.0.5"
"loglevel": "^1.9.2",
"loglevel-plugin-prefix": "^0.8.4"
}
}
2 changes: 1 addition & 1 deletion packages/logger/src/index.ts
Original file line number Diff line number Diff line change
@@ -1 +1 @@
export * from "./types.js";
export * from "./log.js";
28 changes: 28 additions & 0 deletions packages/logger/src/log.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
import loglevel from "loglevel";
import prefix from "loglevel-plugin-prefix";

export interface LoggerOptions {
level?: loglevel.LogLevelDesc;
}

export class Logger {
private log: loglevel.Logger;
// biome-ignore lint/suspicious/noExplicitAny: Do this to allow any method to be called on the logger
[key: string]: any;

constructor(context: string, level: loglevel.LogLevelDesc = "info") {
this.log = loglevel.getLogger(context);
this.log.setLevel(level);
prefix.reg(loglevel);
prefix.apply(this.log, {
template: "%n",
});

for (const method of Object.keys(this.log)) {
const logMethod = this.log[method as keyof loglevel.Logger];
if (typeof logMethod === "function") {
this[method as string] = logMethod.bind(this.log);
}
}
}
}
3 changes: 0 additions & 3 deletions packages/logger/src/types.ts

This file was deleted.

2 changes: 1 addition & 1 deletion packages/logger/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,5 @@
"compilerOptions": {
"outDir": "dist"
},
"include": ["src/**/*.ts"]
"include": ["src/**/*.ts", "src/**/*.js"]
}
2 changes: 0 additions & 2 deletions packages/network/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -54,8 +54,6 @@
"it-map": "^3.1.1",
"it-pipe": "^3.0.1",
"libp2p": "^2.1.6",
"loglevel": "^1.9.2",
"loglevel-plugin-prefix": "^0.8.4",
"ts-proto": "^2.2.4",
"uint8arrays": "^5.1.0"
}
Expand Down
15 changes: 3 additions & 12 deletions packages/network/src/node.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,17 +27,15 @@ import { webSockets } from "@libp2p/websockets";
import * as filters from "@libp2p/websockets/filters";
import { webTransport } from "@libp2p/webtransport";
import { multiaddr } from "@multiformats/multiaddr";
import type { LoggerOptions } from "@topology-foundation/logger";
import { type Libp2p, createLibp2p } from "libp2p";
import loglevel from "loglevel";
import prefix from "loglevel-plugin-prefix";
import { fromString as uint8ArrayFromString } from "uint8arrays/from-string";
import { Message } from "./proto/messages_pb.js";
import { uint8ArrayToStream } from "./stream.js";
import { Logger, type LoggerOptions } from "@topology-foundation/logger";

export * from "./stream.js";

let log: loglevel.Logger;
let log: Logger;

// snake_casing to match the JSON config
export interface TopologyNetworkNodeConfig {
Expand All @@ -58,14 +56,7 @@ export class TopologyNetworkNode {

constructor(config?: TopologyNetworkNodeConfig) {
this._config = config;
log = loglevel.getLogger("topology::network");
log.setLevel(
(this._config?.log_config?.level as loglevel.LogLevelDesc) || "info",
);
prefix.reg(loglevel);
prefix.apply(log, {
template: "%n",
});
log = new Logger("topology::network", config?.log_config?.level);
}

async start() {
Expand Down

0 comments on commit cb5d979

Please sign in to comment.