diff --git a/firebase-vscode/CHANGELOG.md b/firebase-vscode/CHANGELOG.md index c912dfd1d10..f61fc46b10c 100644 --- a/firebase-vscode/CHANGELOG.md +++ b/firebase-vscode/CHANGELOG.md @@ -1,5 +1,7 @@ ## NEXT +- Fixed an issue where log files would be written to non-Firebase directories. + ## 0.10.3 - Updated internal firebase-tools dependency to 13.21.0 diff --git a/firebase-vscode/src/logger-wrapper.ts b/firebase-vscode/src/logger-wrapper.ts index ec3681557d2..1e9441e45e3 100644 --- a/firebase-vscode/src/logger-wrapper.ts +++ b/firebase-vscode/src/logger-wrapper.ts @@ -1,5 +1,7 @@ import * as path from "path"; import * as vscode from "vscode"; +import * as fs from "fs"; +import * as os from "os"; import { transports, format } from "winston"; import Transport from "winston-transport"; import stripAnsi from "strip-ansi"; @@ -45,7 +47,11 @@ export function logSetup() { // Re-implement file logger call from ../../src/bin/firebase.ts to not bring // in the entire firebase.ts file const rootFolders = getRootFolders(); - const filePath = path.join(rootFolders[0], ".firebase", "logs", "vsce-debug.log"); + // Default to a central path, but write files to a local path if we're in a Firebase directory. + let filePath = path.join(os.homedir(), ".cache", "firebase", "logs", "vsce-debug.log"); + if (fs.existsSync(path.join(rootFolders[0], "firebase.json"))) { + filePath = path.join(rootFolders[0], ".firebase", "logs", "vsce-debug.log"); + } pluginLogger.info("Logging to path", filePath); cliLogger.add( new transports.File({