Make sure Metro's own messages are logged as well

Summary: This diff logs the Metro messages as well so that the logs also show it Metro dies or something

Reviewed By: jknoxville

Differential Revision: D19791112

fbshipit-source-id: 477ccdd291df90e49b016d4aeae121d4d81a3835
This commit is contained in:
Michel Weststrate
2020-02-11 07:27:00 -08:00
committed by Facebook Github Bot
parent 535ed88bc3
commit 6fe69f6fc0

View File

@@ -113,6 +113,31 @@ const metroLogLevelMapping: {[key: string]: LogLevel} = {
debug: 'debug', debug: 'debug',
}; };
function getLoglevelFromMessageType(
type: ReportableEvent['type'],
): LogLevel | null {
switch (type) {
case 'bundle_build_done':
case 'bundle_build_started':
case 'initialize_done':
return 'debug';
case 'bundle_build_failed':
case 'bundling_error':
case 'global_cache_error':
case 'hmr_client_error':
return 'error';
case 'bundle_transform_progressed':
return null; // Don't show at all
case 'client_log':
return null; // Handled separately
case 'dep_graph_loaded':
case 'dep_graph_loading':
case 'global_cache_disabled':
default:
return 'verbose';
}
}
export default class MetroDevice extends BaseDevice { export default class MetroDevice extends BaseDevice {
ws: WebSocket; ws: WebSocket;
@@ -134,9 +159,23 @@ export default class MetroDevice extends BaseDevice {
type, type,
tag: message.type, tag: message.type,
message: message.data message: message.data
.map(v => (v && typeof v === 'object' ? JSON.stringify(v) : v)) .map(v =>
v && typeof v === 'object' ? JSON.stringify(v, null, 2) : v,
)
.join(' '), .join(' '),
}); });
} else {
const level = getLoglevelFromMessageType(message.type);
if (level !== null) {
this.addLogEntry({
date: new Date(),
pid: 0,
tid: 0,
type: level,
tag: message.type,
message: JSON.stringify(message, null, 2),
});
}
} }
}; };