@hyperlane-xyz/core
Version:
Core solidity contracts for Hyperlane
40 lines (31 loc) • 780 B
text/typescript
import { sanitizeForMetrics } from './metrics'
abstract class Logger {
log(msg: string) {
const date = new Date()
process.stderr.write(`[${date.toISOString()}] ${msg}\n`)
}
}
export class ActorLogger extends Logger {
private readonly name: string
constructor(name: string) {
super()
this.name = name
}
log(msg: string) {
super.log(`[actor:${sanitizeForMetrics(this.name)}] ${msg}`)
}
}
export class WorkerLogger extends Logger {
private readonly name: string
private readonly workerId: number
constructor(name: string, workerId: number) {
super()
this.name = name
this.workerId = workerId
}
log(msg: string) {
super.log(
`[bench:${sanitizeForMetrics(this.name)}] [wid:${this.workerId}] ${msg}`
)
}
}