• Matthew Slipper's avatar
    actor-tests: Bedrock actor tests (#3161) · 0749d62c
    Matthew Slipper authored
    * actor-tests: Bedrock actor tests
    
    - Moves actors into their own package
    - Minor updates to logging, etc.
    - Adds Cloudbuild config so that we can get Docker images on every commit to Develop
    - Updates Actors to support Bedrock
    
    Currently supported actors:
    
    - Deposits
    - Contract deployments
    - Simple sends
    
    * doctoc only look at specs
    0749d62c
logger.ts 780 Bytes
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}`
    )
  }
}