我有一个电子应用程序,该应用程序正在使用electron-log来为该应用程序创建一些调试信息。默认情况下,它将每个模块的文件保存到以下位置:
**on macOS:** ~/Library/Logs/<app name>/log.log
**on Windows:** %USERPROFILE%\AppData\Roaming\<app name>\log.log
我已经在菜单中的“查看调试信息”中添加了一个选项。我的目标是将此日志读入文本区域(在渲染器上),以便他们可以在需要时提供支持。
在渲染器中,我正在使用fs
来访问文件系统,但是在process.env
中找不到指向这些位置的任何内容,因此我认为它们是自定义的吗?
我是否缺少一个变量,其中包含操作系统上的这些路径?
const fs = require('fs');
if(process.platform == 'darwin'){
// Path is ~/Library/Logs/<app name>/log.log
// Read the file into the textarea
}else{
// Path is %USERPROFILE%\AppData\Roaming\<app name>\log.log
// Read the file into the textarea
}
答案 0 :(得分:0)
我认为您可以使用app.getPath(...)
。
import { app } from "electron";
let logFileName;
// If, darwin; PATH is: ~/Library/Logs/<app name>/log.log
if(process.platform == 'darwin'){
logFileName = app.getPath("logs") + "/log.log",
} else if(process.platform == 'win32'){ {
logFileName = app.getPath("userData") + "/log.log",
} else {
// Handle other supported platforms ('aix','freebsd', 'linux', 'openbsd', 'sunos')
}
fs.readFile(logFileName, function read(err, data) {
if (err) {
throw err;
}
// Read the file data content into the text-area.
});
来自Electron的getPath
documentation;
app.getPath(name)
名称
String
返回
String
-与名称关联的特殊目录或文件的路径。失败时,将引发错误。您可以通过
name
请求以下路径:
home
用户的主目录。
appData
每个用户的应用程序数据目录,默认情况下指向:Windows上的%APPDATA%
,Linux上的$XDG_CONFIG_HOME
或~/.config
和macOS上的~/Library/Application Support
userData
用于存储应用程序配置文件的目录,默认情况下,该目录是appData目录,后跟应用程序名称。
temp
临时目录。
exe
当前的可执行文件。
module
libchromiumcontent库。
desktop
当前用户的桌面目录。
documents
用户“我的文档”的目录。
downloads
用户下载的目录。
music
用户音乐的目录。
pictures
用户图片的目录。
videos
用户视频的目录。
logs
应用程序日志文件夹的目录。
pepperFlashSystemPlugin
到Pepper Flash插件系统版本的完整路径。
答案 1 :(得分:0)