Electron 和 NodeJS 无法将日志写入文件

Electron and NodeJS is unable to write logs to a file

我正在 运行在 electron 中安装一个 nodejs 应用程序。 nodejs 应用程序将日志写入位于应用程序相同安装路径中的日志文件。

然后我使用 electron builder 来构建安装程序。在 windows 机器上,当我在 C:\Users\username 下安装应用程序时,nodejs 应用程序将日志写入日志文件没有任何问题。但是当应用程序安装在C:\Program Files\MyApp下时出现问题,应用程序显示以下错误:

Error: EPERM: operation not permitted, open 'C:\Program Files\MyApp\resources\app.asar.unpacked\server\logs\output.log'

但是,如果我 运行 作为管理员使用该应用程序,它就可以完美运行。这显然是一个权限问题。如何让我的应用在没有任何管理员权限的情况下写入上述路径中的日志?

提前致谢。

Windows 不提供写入 Program Files 目录的权限,除非您具有管理员权限。您要么必须强制用户 运行 您以管理员身份编程,要么像大多数应用程序那样将日志写入 C:\Users\<username>\AppData\Local\<yourappname> 之类的文件夹

最好将日志存储在

中的某处
path.join(app.getPath('userData'),'logs');

https://github.com/electron/electron/blob/master/docs/api/app.md#appgetpathname