Add null logger

This commit is contained in:
Anton Vakhrushev 2020-04-18 10:27:37 +03:00
parent f99a8fce86
commit c285338705
7 changed files with 30 additions and 20 deletions

View File

@ -13,7 +13,7 @@ import {
import Vue from 'vue'; import Vue from 'vue';
import DashboardApp from './Components/DashboardApp.vue'; import DashboardApp from './Components/DashboardApp.vue';
import { ResourcesToLevel } from '../Task/ResourcesToLevel'; import { ResourcesToLevel } from '../Task/ResourcesToLevel';
import { Logger } from '../Logger'; import { ConsoleLogger, Logger } from '../Logger';
import { VillageState } from '../State/VillageState'; import { VillageState } from '../State/VillageState';
import { StateGrabberManager } from '../State/StateGrabberManager'; import { StateGrabberManager } from '../State/StateGrabberManager';
@ -25,14 +25,14 @@ interface QuickAction {
export class Dashboard { export class Dashboard {
private readonly version: string; private readonly version: string;
private scheduler: Scheduler; private scheduler: Scheduler;
private readonly logger;
private grabbers: StateGrabberManager; private grabbers: StateGrabberManager;
private readonly logger: Logger;
constructor(version: string, scheduler: Scheduler) { constructor(version: string, scheduler: Scheduler) {
this.version = version; this.version = version;
this.scheduler = scheduler; this.scheduler = scheduler;
this.grabbers = new StateGrabberManager(); this.grabbers = new StateGrabberManager();
this.logger = new Logger(this.constructor.name); this.logger = new ConsoleLogger(this.constructor.name);
} }
async run() { async run() {

View File

@ -1,6 +1,19 @@
export class Logger { export abstract class Logger {
abstract log(...args): void;
abstract warn(...args): void;
abstract error(...args): void;
}
export class NullLogger extends Logger {
log(...args): void {}
warn(...args): void {}
error(...args): void {}
}
export class ConsoleLogger extends Logger {
private readonly name: string; private readonly name: string;
constructor(name: string) { constructor(name: string) {
super();
this.name = name.toUpperCase(); this.name = name.toUpperCase();
} }
@ -15,8 +28,4 @@ export class Logger {
error(...args): void { error(...args): void {
console.error(this.name + ':', ...args); console.error(this.name + ':', ...args);
} }
makeLogger(name: string) {
return new Logger(this.name + '.' + name);
}
} }

View File

@ -3,7 +3,7 @@ import { UpgradeBuildingTask } from '../Task/UpgradeBuildingTask';
import { Scheduler } from '../Scheduler'; import { Scheduler } from '../Scheduler';
import { TrainTroopTask } from '../Task/TrainTroopTask'; import { TrainTroopTask } from '../Task/TrainTroopTask';
import { grabActiveVillageId } from './VillageBlock'; import { grabActiveVillageId } from './VillageBlock';
import { Logger } from '../Logger'; import { ConsoleLogger, Logger } from '../Logger';
import { createBuildButton, createUpgradeButton } from './BuildingPage'; import { createBuildButton, createUpgradeButton } from './BuildingPage';
import { BuildBuildingTask } from '../Task/BuildBuildingTask'; import { BuildBuildingTask } from '../Task/BuildBuildingTask';
@ -19,7 +19,7 @@ export class BuildPage {
this.scheduler = scheduler; this.scheduler = scheduler;
this.buildId = buildId; this.buildId = buildId;
this.categoryId = categoryId; this.categoryId = categoryId;
this.logger = new Logger(this.constructor.name); this.logger = new ConsoleLogger(this.constructor.name);
} }
run() { run() {

View File

@ -9,7 +9,7 @@ import { createAction } from './Action/ActionController';
import { createTask } from './Task/TaskController'; import { createTask } from './Task/TaskController';
import { SendOnAdventureTask } from './Task/SendOnAdventureTask'; import { SendOnAdventureTask } from './Task/SendOnAdventureTask';
import { BalanceHeroResourcesTask } from './Task/BalanceHeroResourcesTask'; import { BalanceHeroResourcesTask } from './Task/BalanceHeroResourcesTask';
import { Logger } from './Logger'; import { ConsoleLogger, Logger } from './Logger';
import { BuildBuildingTask } from './Task/BuildBuildingTask'; import { BuildBuildingTask } from './Task/BuildBuildingTask';
import { GrabVillageState } from './Task/GrabVillageState'; import { GrabVillageState } from './Task/GrabVillageState';
import { StateGrabberManager } from './State/StateGrabberManager'; import { StateGrabberManager } from './State/StateGrabberManager';
@ -26,7 +26,7 @@ export class Scheduler {
this.taskQueue = new TaskQueue(); this.taskQueue = new TaskQueue();
this.actionQueue = new ActionQueue(); this.actionQueue = new ActionQueue();
this.grabbers = new StateGrabberManager(); this.grabbers = new StateGrabberManager();
this.logger = new Logger(this.constructor.name); this.logger = new ConsoleLogger(this.constructor.name);
} }
async run() { async run() {

View File

@ -1,5 +1,5 @@
import { Command } from '../Common'; import { Command } from '../Common';
import { Logger } from '../Logger'; import { ConsoleLogger, Logger } from '../Logger';
const QUEUE_NAME = 'action_queue:v2'; const QUEUE_NAME = 'action_queue:v2';
@ -22,7 +22,7 @@ export class ActionQueue {
private readonly logger; private readonly logger;
constructor() { constructor() {
this.logger = new Logger(this.constructor.name); this.logger = new ConsoleLogger(this.constructor.name);
} }
pop(): Command | undefined { pop(): Command | undefined {

View File

@ -1,4 +1,4 @@
import { Logger } from '../Logger'; import { ConsoleLogger, Logger, NullLogger } from '../Logger';
const NAMESPACE = 'travian:v1'; const NAMESPACE = 'travian:v1';
@ -7,12 +7,13 @@ function join(...parts: Array<string>) {
} }
export class DataStorage { export class DataStorage {
private readonly logger; private readonly logger: Logger;
private readonly name: string; private readonly name: string;
constructor(name: string) { constructor(name: string) {
this.name = name; this.name = name;
this.logger = new Logger(this.constructor.name); // this.logger = new ConsoleLogger(this.constructor.name);
this.logger = new NullLogger();
} }
get(key: string): any { get(key: string): any {

View File

@ -1,6 +1,6 @@
import { Args } from '../Common'; import { Args } from '../Common';
import { uniqId } from '../utils'; import { uniqId } from '../utils';
import { Logger } from '../Logger'; import { ConsoleLogger, Logger } from '../Logger';
const QUEUE_NAME = 'task_queue:v4'; const QUEUE_NAME = 'task_queue:v4';
@ -30,10 +30,10 @@ export class Task {
export type TaskList = Array<Task>; export type TaskList = Array<Task>;
export class TaskQueue { export class TaskQueue {
private readonly logger; private readonly logger: Logger;
constructor() { constructor() {
this.logger = new Logger(this.constructor.name); this.logger = new ConsoleLogger(this.constructor.name);
} }
push(name: string, args: Args, ts: number): Task { push(name: string, args: Args, ts: number): Task {