Registro de mensagens em JavaScript

É possível registrar mensagens de um manipulador de função ou procedimento escrito em JavaScript usando o objeto snowflake incluído na API JavaScript Snowflake. Quando você configura uma tabela de eventos para armazenar entradas de log, o Snowflake armazena na tabela as entradas de log geradas pelo seu código do manipulador. Para obter referência sobre a API JavaScript, consulte API de procedimentos armazenados em JavaScript.

Antes de fazer o registro a partir do código, certifique-se de que o nível de registro em log esteja definido para que as mensagens desejadas sejam armazenadas na tabela de eventos. Para obter mais informações, consulte Definição de níveis para registro, métricas e rastreamento.

Nota

Antes de começar a registrar mensagens, é necessário configurar uma tabela de eventos. Para obter mais informações, consulte Visão geral da tabela de evento.

Você pode acessar as mensagens de log executando um comando SELECT na tabela de eventos. Para obter mais informações, consulte Visualização de mensagens de log.

Para obter informações gerais sobre como configurar o registro e recuperar mensagens no Snowflake, consulte Registro de mensagens de funções e procedimentos.

O código no exemplo a seguir usa o objeto snowflake incluído para registrar mensagens em cada um dos níveis suportados. Observe que uma mensagem registrada de um método que processa uma linha de entrada será registrada para cada linha processada pela UDF. Se a UDF for executada em uma tabela grande, isso poderá resultar em um grande número de mensagens na tabela de eventos.

snowflake.log("info", "Information-level message");
snowflake.log("error", "Error message");
snowflake.log("warn", "Warning message");
snowflake.log("debug", "Debug message");
snowflake.log("trace", "Trace message");
snowflake.log("fatal", "Fatal message");
Copy

Adição de atributos personalizados

Ao criar uma entrada de log, é possível adicionar seus próprios atributos em pares chave-valor. O Snowflake salva esses atributos personalizados na coluna RECORD_ATTRIBUTES da tabela de evento.

Para adicionar atributos personalizados ao chamar o método snowflake.log, monte os pares chave-valor em JSON, que você passa como um terceiro argumento para a função log.

O código no exemplo a seguir registra a mensagem “Registro com atributos” na coluna VALUE da tabela de evento. Ele também adiciona dois atributos personalizados à coluna RECORD_ATTRIBUTES.

CREATE OR REPLACE PROCEDURE do_logging_javascript()
RETURNS VARCHAR
LANGUAGE JAVASCRIPT
AS $$
  let log_attributes = {
    "custom1": "value1",
    "custom2": "value2"
  }
  snowflake.log("info", "Logging with attributes", log_attributes)
  return "success";
$$;
Copy

A saída desta chamada log aparece na tabela de evento da seguinte forma. Observe que a coluna RECORD_ATTRIBUTES incluirá atributos que o Snowflake adiciona automaticamente.

------------------------------------------------------------------
| VALUE                     | RECORD_ATTRIBUTES                  |
------------------------------------------------------------------
| "Logging with attributes" | {                                  |
|                           |   "custom1": "value1",             |
|                           |   "custom2": "value2"              |
|                           | }                                  |
------------------------------------------------------------------