代码之家  ›  专栏  ›  技术社区  ›  avi12

启用Office加载项中的扩展错误日志记录(查看有关错误对象的完整语句)

  •  3
  • avi12  · 技术社区  · 6 年前

    我正在开发外接程序,遇到错误。
    一堆东西被打印到控制台上,其中一些是:

    那是什么意思?如何启用该设置? 一堆东西被打印到控制台上,其中一些是:

    那是什么意思?如何启用该设置?

    1 回复  |  直到 6 年前
        1
  •  4
  •   Michael Zlatkovsky    6 年前

    好问题!

    假设您有这样的代码:

    异步函数run()。{ 等待excel.run(async(context)=>。{ const range=context.workbook.getSelectedRange(); range.getrow(1000).format.fill.color=“yellow”; 等待context.sync(); })(二) }

    并且假设您的选择范围很小,这样 getrow(1000) will cause an exception.

    如果你今天运行这个,你会得到一些信息:

    但是请注意,您没有得到完整的语句集,只有“周围”语句(如果您有代码的 bundle->em>束,这可能不够)。而且,有些信息是“…”—ed out for you.

    现在,在代码上方的某个位置粘贴以下行:

    officeExtension.config.extendedErrorLogging=true;

    一旦你有了它,你将得到完整的错误日志记录(这对调试很好,但是请不要在生产应用程序中这样做——你不想支付性能成本,更重要的是,你不想记录和存储敏感数据,这些数据可能会出现在完整的STA日志中。项(例如,包含客户信息的二维值数组…)

    office d.ts文件on definitelytyped :

    /**配置*/ 变量配置:{ /** *确定失败时是否记录其他错误信息。 * *当此属性设置为true时,错误对象将包含一个“debuginfo.fullStatements”属性,该属性列出批处理请求中的所有语句,包括失败点之前和之后的所有语句。 * *将此属性设置为true将对性能产生负面影响,并将记录批处理请求中的所有语句,包括可能包含潜在敏感数据的任何语句。 *建议只在调试期间将此属性设置为true,并且从不将error.debuginfo.fullStatements的值记录到外部数据库或分析服务。 */ 扩展错误记录:布尔值; }(二)

    想象一下你的选择范围很小, getRow(1000) 将导致异常。

    如果你今天运行这个,你会得到一些信息:

    Error screenshot

    但是请注意,您没有得到完整的语句集,只有“周围”语句(如果您有 可能还不够)。而且,有些信息是为你准备的。

    现在,在代码上方的某个位置粘贴以下行:

    OfficeExtension.config.extendedErrorLogging = true;

    一旦拥有了它,您将得到完整的错误日志记录(这对调试很好,但是请不要在生产应用程序中这样做--您不想支付性能成本,更重要的是,您不想记录和存储敏感数据,这些数据可能会出现在完整状态的日志中ents(例如,包含客户信息的二维值数组…)

    Full statements, after enabling "OfficeExtension.config.extendedErrorLogging"

    来自 Office d.ts file on DefinitelyTyped 以下内容:

    /** Configuration */ var config: { /** * Determines whether to log additional error information upon failure. * * When this property is set to true, the error object will include a "debugInfo.fullStatements" property that lists all statements in the batch request, including all statements that precede and follow the point of failure. * * Setting this property to true will negatively impact performance and will log all statements in the batch request, including any statements that may contain potentially-sensitive data. * It is recommended that you only set this property to true during debugging and that you never log the value of error.debugInfo.fullStatements to an external database or analytics service. */ extendedErrorLogging: boolean; };