Stream server logs to browser

Summary: Makes Flipper Logs tab functional for Flipper Browser

Reviewed By: lblasa

Differential Revision: D37459924

fbshipit-source-id: 4ebf3d47fbbf90bb367e01986b12dec782b03c34
This commit is contained in:
Andrey Goncharov
2022-06-28 06:27:43 -07:00
committed by Facebook GitHub Bot
parent c1d959d62e
commit dcbc7c40bb
4 changed files with 23 additions and 1 deletions

View File

@@ -72,7 +72,7 @@ const rootDir = argv.bundler
const staticDir = path.join(rootDir, 'static');
async function start() {
initializeLogger(staticDir);
const enhanceLogger = initializeLogger(staticDir);
let keytar: any = undefined;
try {
@@ -107,6 +107,11 @@ async function start() {
keytar,
'external',
);
enhanceLogger((logEntry) => {
flipperServer.emit('server-log', logEntry);
});
const companionEnv = await initCompanionEnv(flipperServer);
if (argv.failFast) {
flipperServer.on('server-state', ({state}) => {

View File

@@ -88,8 +88,15 @@ export function initializeLogger(staticDir: string) {
const logger = createLogger();
setLoggerInstance(logger);
let onConsoleEntry: ((entry: LoggerInfo) => void) | undefined;
const file = fs.createWriteStream(path.join(staticDir, loggerOutputFile));
consoleProxy((entry: LoggerInfo) => {
file.write(`${JSON.stringify(entry)}\n`);
onConsoleEntry?.(entry);
});
return (newOnConsoleEntry: (entry: LoggerInfo) => void) => {
onConsoleEntry = newOnConsoleEntry;
};
}