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

Posted

技术标签:

【中文标题】在 Office 加载项中启用扩展错误日志记录(查看有关错误对象的完整语句)【英文标题】:Enabling extended error logging in Office Add-ins (to see full statements on error object) 【发布时间】:2018-12-01 08:55:03 【问题描述】:

我正在开发插件,但遇到了错误。 一堆东​​西打印到控制台,其中一些是:

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

【问题讨论】:

【参考方案1】:

好问题!

想象一下你有这样的代码:

async function run() 
  await Excel.run(async (context) => 
    const range = context.workbook.getSelectedRange();
    range.getRow(1000).format.fill.color = "yellow";
    await context.sync();
  );

并假设您的选择只是一个很小的范围,这样getRow(1000) 将导致异常。

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

但请注意,您没有得到完整的语句集,只有“周围”的语句(如果您有 一堆 代码,可能还不够)。而且,有些信息是“……”为您提供的。

现在,将以下行粘贴到您的代码上方:

OfficeExtension.config.extendedErrorLogging = true;

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

来自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;
;

【讨论】:

谢谢!我通过注释掉与 office-js 相关的行成功地解决了问题,并查看问题是否不断发生,最终导致少数几行确实重要,并且我找到了有问题的行。原来工作表名称中不能包含某些字符。 好吧,事实证明,问题不一定是字符,而是字符总数。 很高兴它有帮助!是的,我相信两者都是正确的——如果你在 UI 中尝试,你会发现 Excel 都不允许某些字符,并且有长度限制(31 或 32 个字符,IIRC)。 在我的 Word 加载项中我得到:OfficeExtension 在我这样做时没有定义 @NathanB,它应该可以工作,前提是您在“Office.onReady()”触发后的某个时间进行此调用。

以上是关于在 Office 加载项中启用扩展错误日志记录(查看有关错误对象的完整语句)的主要内容,如果未能解决你的问题,请参考以下文章

OA系统无法打开PDF文件,设置加载项发现Office Document Cache Handler无法启用,怎么设置?

office插件安装完成后com加载项中vsto文件不加载

如何使用office API在Outlook Web加载项中显示菜单控件项目的纯文本菜单?

ofFice 对话日志仅保留群聊节的正文

(转)发布网站的时候,遇到 未能加载文件或程序集 Microsoft.Office.Tools.Excel, Version=8

如何解决Office加载项(Outlook)的此NPM / Yeoman错误日志?