Skip to content

Commit

Permalink
chore(logs): rework logs for simplicity (#2592)
Browse files Browse the repository at this point in the history
  • Loading branch information
pavelfeldman committed Jun 17, 2020
1 parent 4b2efd6 commit c220fc7
Show file tree
Hide file tree
Showing 29 changed files with 384 additions and 363 deletions.
2 changes: 1 addition & 1 deletion src/api.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ export { Dialog } from './dialog';
export { Download } from './download';
export { ElementHandle } from './dom';
export { FileChooser } from './fileChooser';
export { Logger } from './logger';
export { Logger } from './types';
export { TimeoutError } from './errors';
export { Frame } from './frames';
export { Keyboard, Mouse } from './input';
Expand Down
4 changes: 2 additions & 2 deletions src/browser.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,11 @@ import { EventEmitter } from 'events';
import { Download } from './download';
import type { BrowserServer } from './server/browserServer';
import { Events } from './events';
import { InnerLogger } from './logger';
import { Loggers } from './logger';
import { ProxySettings } from './types';

export type BrowserOptions = {
logger: InnerLogger,
loggers: Loggers,
downloadsPath?: string,
headful?: boolean,
persistent?: PersistentContextOptions, // Undefined means no persistent context.
Expand Down
11 changes: 6 additions & 5 deletions src/browserContext.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ import * as types from './types';
import { Events } from './events';
import { Download } from './download';
import { BrowserBase } from './browser';
import { InnerLogger, Logger } from './logger';
import { Loggers, Logger } from './logger';
import { EventEmitter } from 'events';
import { ProgressController } from './progress';
import { DebugController } from './debug/debugController';
Expand All @@ -52,7 +52,7 @@ type CommonContextOptions = {

export type PersistentContextOptions = CommonContextOptions;
export type BrowserContextOptions = CommonContextOptions & {
logger?: Logger,
logger?: types.Logger,
};

export interface BrowserContext {
Expand Down Expand Up @@ -89,14 +89,15 @@ export abstract class BrowserContextBase extends EventEmitter implements Browser
readonly _permissions = new Map<string, string[]>();
readonly _downloads = new Set<Download>();
readonly _browserBase: BrowserBase;
readonly _logger: InnerLogger;
readonly _apiLogger: Logger;
private _debugController: DebugController | undefined;

constructor(browserBase: BrowserBase, options: BrowserContextOptions) {
super();
this._browserBase = browserBase;
this._options = options;
this._logger = options.logger ? new InnerLogger(options.logger) : browserBase._options.logger;
const loggers = options.logger ? new Loggers(options.logger) : browserBase._options.loggers;
this._apiLogger = loggers.api;
this._closePromise = new Promise(fulfill => this._closePromiseFulfill = fulfill);
}

Expand All @@ -115,7 +116,7 @@ export abstract class BrowserContextBase extends EventEmitter implements Browser

async waitForEvent(event: string, optionsOrPredicate: types.WaitForEventOptions = {}): Promise<any> {
const options = typeof optionsOrPredicate === 'function' ? { predicate: optionsOrPredicate } : optionsOrPredicate;
const progressController = new ProgressController(this._logger, this._timeoutSettings.timeout(options));
const progressController = new ProgressController(this._apiLogger, this._timeoutSettings.timeout(options), 'browserContext.waitForEvent');
if (event !== Events.BrowserContext.Close)
this._closePromise.then(error => progressController.abort(error));
return progressController.run(progress => helper.waitForEvent(progress, this, event, options.predicate));
Expand Down
2 changes: 1 addition & 1 deletion src/chromium/crBrowser.ts
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ export class CRBrowser extends BrowserBase {
private _tracingClient: CRSession | undefined;

static async connect(transport: ConnectionTransport, options: BrowserOptions, devtools?: CRDevTools): Promise<CRBrowser> {
const connection = new CRConnection(SlowMoTransport.wrap(transport, options.slowMo), options.logger);
const connection = new CRConnection(SlowMoTransport.wrap(transport, options.slowMo), options.loggers);
const browser = new CRBrowser(connection, options);
browser._devtools = devtools;
const session = connection.rootSession;
Expand Down
22 changes: 11 additions & 11 deletions src/chromium/crConnection.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,10 @@
*/

import { assert } from '../helper';
import { ConnectionTransport, ProtocolRequest, ProtocolResponse, protocolLog } from '../transport';
import { ConnectionTransport, ProtocolRequest, ProtocolResponse } from '../transport';
import { Protocol } from './protocol';
import { EventEmitter } from 'events';
import { InnerLogger, errorLog } from '../logger';
import { Loggers, Logger } from '../logger';
import { rewriteErrorMessage } from '../utils/stackTrace';

export const ConnectionEvents = {
Expand All @@ -36,12 +36,12 @@ export class CRConnection extends EventEmitter {
private readonly _sessions = new Map<string, CRSession>();
readonly rootSession: CRSession;
_closed = false;
readonly _logger: InnerLogger;
readonly _logger: Logger;

constructor(transport: ConnectionTransport, logger: InnerLogger) {
constructor(transport: ConnectionTransport, loggers: Loggers) {
super();
this._transport = transport;
this._logger = logger;
this._logger = loggers.protocol;
this._transport.onmessage = this._onMessage.bind(this);
this._transport.onclose = this._onClose.bind(this);
this.rootSession = new CRSession(this, '', 'browser', '');
Expand All @@ -62,15 +62,15 @@ export class CRConnection extends EventEmitter {
const message: ProtocolRequest = { id, method, params };
if (sessionId)
message.sessionId = sessionId;
if (this._logger.isLogEnabled(protocolLog))
this._logger.log(protocolLog, 'SEND ► ' + rewriteInjectedScriptEvaluationLog(message));
if (this._logger.isEnabled())
this._logger.info('SEND ► ' + rewriteInjectedScriptEvaluationLog(message));
this._transport.send(message);
return id;
}

async _onMessage(message: ProtocolResponse) {
if (this._logger.isLogEnabled(protocolLog))
this._logger.log(protocolLog, '◀ RECV ' + JSON.stringify(message));
if (this._logger.isEnabled())
this._logger.info('◀ RECV ' + JSON.stringify(message));
if (message.id === kBrowserCloseMessageId)
return;
if (message.method === 'Target.attachedToTarget') {
Expand Down Expand Up @@ -166,9 +166,9 @@ export class CRSession extends EventEmitter {
}

_sendMayFail<T extends keyof Protocol.CommandParameters>(method: T, params?: Protocol.CommandParameters[T]): Promise<Protocol.CommandReturnValues[T] | void> {
return this.send(method, params).catch(error => {
return this.send(method, params).catch((error: Error) => {
if (this._connection)
this._connection._logger.log(errorLog, error, []);
this._connection._logger.error(error);
});
}

Expand Down

0 comments on commit c220fc7

Please sign in to comment.