配置 ODBC 日志

以下参数控制 ODBC 客户端驱动程序是否以及如何记录客户端和服务器之间的消息。

设置这些参数的方式因操作系统不同而异:

  • 在 Linux 和 macOS 上,编辑您在安装期间创建的 vertica.ini。例如,要将所有警告和更严重的消息记录到 /tmp/ 中的日志文件:

    [Driver]
    LogLevel=4
    LogPath=/tmp
    
  • 在 Windows 上的 Windows 注册表中,编辑 HKEY_LOCAL_MACHINE\SOFTWARE\Vertica\ODBC\Driver 下面的键。

参数

  • LogLevel:在客户端和服务器之间记录的消息的严重性。有效值包括:

    • 0:无日志记录

    • 1:严重错误

    • 2:错误

    • 3:警告

    • 4:信息

    • 5:Debug

    • 6:跟踪(所有消息)

    为此设置指定的值设置了要记录的消息的最低严重性。例如,如果将 LogLevel 设置为 3,则表示客户端驱动程序将记录所有警告、错误和严重错误。

  • LogPath:用于存储日志文件的目录的绝对路径。例如: /var/log/verticaodbc

将日志条目转移到 ETW (Windows)

在 Windows 客户端上,可以将 ODBC 日志条目发送到 Windows 事件跟踪 (ETW),以便它们显示在 Windows 事件查看器中:

  • 将驱动程序注册为 Windows 事件日志提供程序,并启用日志。

  • 通过将带有数据 ETW 的字符串值 LogType 添加到 Windows 注册表来激活 ETW。

  • 了解 Vertica 如何压缩 Windows 事件查看器的日志级别。

  • 了解在事件查看器中的何处可以找到日志。

  • 了解日志条目中事件 ID 的含义。

将 ODBC 驱动程序注册为 Windows 事件日志提供程序

要使用 ETW 日志记录,必须将 ODBC 驱动程序注册为 Windows 事件日志提供程序。您可以选择注册 32 位或 64 位驱动程序。注册驱动程序后,必须启用日志。

  1. 以管理员身份打开命令提示符窗口,或使用“以管理员身份运行 (Run as Administrator)”选项启动命令提示符。

  2. 运行命令 wevtutil im 以注册 32 位或 64 位版本的驱动程序。

    • 对于 64 位 ODBC 驱动程序,运行:

      wevtutil im "c:\Program Files\Vertica Systems\ODBC64\lib\VerticaODBC64.man"
      /resourceFilePath:"c:\Program Files\Vertica Systems\ODBC64\lib\vertica_9.1_odbc_3.5.dll"
      /messageFilePath:"c:\Program Files\Vertica Systems\ODBC64\lib\vertica_9.1_odbc_3.5.dll"
      
    • 对于 32 位 ODBC 驱动程序,运行:

      wevtutil im "c:\Program Files (x86)\Vertica Systems\ODBC32\lib\VerticaODBC32.man"
      /resourceFilePath:"c:\Program Files (x86)\Vertica Systems\ODBC32\lib\vertica_9.1_odbc_3.5.dll"
      /messageFilePath:"c:\Program Files (x86)\Vertica Systems\ODBC32\lib\vertica_9.1_odbc_3.5.dll"
      
  3. 运行命令 wevtutil sl 以启用日志。

    • 对于 64 位 ODBC 驱动程序日志,运行:

      wevtutil sl VerticaODBC64/e:true
      
    • 对于 32 位 ODBC 驱动程序日志,运行:

      wevtutil sl VerticaODBC32/e:true
      

添加字符串值 LogType

默认情况下,Vertica 不会将 ODBC 日志条目发送到 ETW。要激活 ETW,请将字符串 LogType 添加到 Windows 注册表,并将其值设置为 ETW

  1. 通过在 Windows“运行 (Run)”命令框中键入 regedit.exe 来启动注册表编辑器。

  2. 导航到注册表中的 HKEY_LOCAL_MACHINE\SOFTWARE\Vertica\ODBC\Driver

  3. 注册表编辑器 (Registry Editor) 窗口的右窗格中右键单击。

  4. 选择新建 (New),然后选择字符串值 (String Value)

  5. 将字符串值的名称从 New Value #1 更改为 LogType

  6. 双击新的 LogType 条目。当系统提示输入新值时,输入 ETW

  7. 退出注册表编辑器。

默认情况下,禁用 ETW。启用 ETW 后,您可以通过从 LogType 字符串中清除值 ETW 来禁用它。

虽然 LogLevel 的范围从 0 到 6,但对于 Windows 事件查看器,此范围被压缩到 0 到 3 的范围。

以下示例显示了在 Windows 事件查看器中显示时如何转换 LogLevel。

  • LogLevel 为 5 将致命错误、错误、警告、信息和调试日志级别条目作为级别 4(信息)发送到事件查看器。

  • LogLevel 为 6 将致命错误、错误、警告、调试和跟踪日志级别条目作为级别 4 发送到事件查看器。

在事件查看器中查找日志

  1. 启动 Windows 事件查看器

  2. 事件查看器(本地) (Event Viewer (Local)),展开应用程序和服务日志 (Applications and Services Logs)

  3. 展开包含您要查看的日志的文件夹(例如 VerticaODBC64)。

  4. 选择文件夹下的 Vertica ODBC 日志。条目出现在右窗格中。

  5. 请注意事件 ID (Event ID) 字段中的值。每个事件日志条目包含四个事件 ID 之一:

    • 0:信息性(调试、信息和跟踪事件)

    • 1:错误

    • 2:严重事件

    • 3:警告