Capabilities | @axiomhq/js | @axiomhq/logging |
---|---|---|
Send data to Axiom | Yes | Yes |
Query data | Yes | No |
Capture errors | Yes | No |
Create annotations | Yes | No |
Transports | No | Yes |
Structured logging by default | No | Yes |
Send data to multiple places from a single function | No | Yes |
@axiomhq/logging
library is a logging solution that also serves as the base for other libraries like @axiomhq/react
and @axiomhq/nextjs
.
The @axiomhq/js and the @axiomhq/logging libraries are part of the Axiom JavaScript SDK, an open-source project and welcomes your contributions. For more information, see the GitHub repository.
Prerequisites
- Create an Axiom account.
- Create a dataset in Axiom where you send your data.
- Create an API token in Axiom with permissions to update the dataset you have created.
Use @axiomhq/js
Install @axiomhq/js
In your terminal, go to the root folder of your JavaScript app and run the following command:Configure environment variables
Configure the environment variables in one of the following ways:-
Export the API token as
AXIOM_TOKEN
. -
Pass the API token to the constructor of the client:
-
Install the Axiom CLI, and then run the following command:
Send data to Axiom
The following example sends data to Axiom:Replace
DATASET_NAME
with the name of the Axiom dataset where you send your data.flush()
only before your application exits.
Query data
The following example queries data from Axiom:Replace
DATASET_NAME
with the name of the Axiom dataset where you send your data.Capture errors
To capture errors, pass a methodonError
to the client:
onError
is set to console.error
.
Create annotations
The following example creates an annotation:Use @axiomhq/logging
Install @axiomhq/logging
In your terminal, go to the root folder of your JavaScript app and run the following command:Send data to Axiom
The following example sends data to Axiom:Transports
The@axiomhq/logging
library includes the following transports:
-
ConsoleTransport
: Logs to the console. -
AxiomJSTransport
: Sends logs to Axiom using the @axiomhq/js library. -
ProxyTransport
: Sends logs the proxy server function that acts as a proxy between your application and Axiom. It’s particularly useful when your application runs on top of a server-enabled framework like Next.js or Remix.
Transport
interface:
Logging levels
The@axiomhq/logging
library includes the following logging levels:
debug
: Debug-level logs.info
: Informational logs.warn
: Warning logs.error
: Error logs.