【问题标题】:Electron and NodeJS is unable to write logs to a fileElectron 和 NodeJS 无法将日志写入文件
【发布时间】:2019-10-10 15:27:59
【问题描述】:

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

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

错误:EPERM:不允许操作,打开 'C:\Program Files\MyApp\resources\app.asar.unpacked\server\logs\output.log'

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

提前致谢。

【问题讨论】:

    标签: node.js electron electron-builder


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      最好将日志存储在某处

      path.join(app.getPath('userData'),'logs');
      

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

      【讨论】:

        猜你喜欢
        • 2014-10-07
        • 2014-09-18
        • 1970-01-01
        • 2020-07-28
        • 1970-01-01
        • 2021-04-26
        • 2018-03-15
        • 2012-04-06
        • 1970-01-01
        相关资源
        最近更新 更多