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:
committed by
Facebook Github Bot
parent
535ed88bc3
commit
6fe69f6fc0
@@ -113,6 +113,31 @@ const metroLogLevelMapping: {[key: string]: LogLevel} = {
|
||||
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 {
|
||||
ws: WebSocket;
|
||||
|
||||
@@ -134,9 +159,23 @@ export default class MetroDevice extends BaseDevice {
|
||||
type,
|
||||
tag: message.type,
|
||||
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(' '),
|
||||
});
|
||||
} 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),
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user