#
Edge Logger
We launched Workers Logs to enable Observability for Cloudflare Workers directly in the Cloudflare Dashboard.
Cloudflare Logpush is not available in all Cloudflare edge environments. In those environments, it's necessary to emit logs from within the process. The Baselime Edge Logger enables you to send logs from your Cloudflare edge environments to Baselime regardless of the platform.
It enables logging from:
#
Usage
Step 1: Install the @baselime/edge-logger package.
npm i @baselime/edge-logger
Step 2: Add the BASELIME_API_KEY
to your your environment variables
[vars]
BASELIME_API_KEY = "BASELIME_API_KEY"
Get your public BASELIME_API_KEY
from the Baselime console
Step 3: Use the logger
import { BaselimeLogger } from '@baselime/edge-logger'
export interface Env {
BASELIME_API_KEY: string
}
export default {
async fetch(req: Request, env: Env, ctx: ExecutionContext): Promise<Response> {
const logger = new BaselimeLogger({
ctx,
apiKey: env.BASELIME_API_KEY,
service: 'my-service',
dataset: 'cloudflare',
namespace: 'my-worker-name',
requestId: crypto.randomUUID(),
})
// Use the Baselime Edge logger to log
logger.info('Hello, World!', { foo: 'bar' })
// Make sure to add this to flush the logs to Baselime before the return statement
ctx.waitUntil(logger.flush());
return new Response('Request Completed');
}
}
#
Supported methods
logger.info("This is an informational message", { payload: { foo: "bar" } });
logger.warn("This is a warning message", { payload: { foo: "bar" } });
logger.error("This is an error message", { payload: { foo: "bar" } });
#
Local Development
To get logs appropriately formatted in your local development environment using wrangler, add the IS_LOCAL_MODE
environment variable to your .dev.var
file.
IS_LOCAL_MODE=1
And use it when configurting the BaselimeLogger
.
export default {
async fetch(req: Request, env: Env, ctx: ExecutionContext): Promise<Response> {
const logger = new BaselimeLogger({
ctx,
apiKey: env.BASELIME_KEY,
isLocalDev: env.IS_LOCAL_DEV
})
logger.info("Pretty Formatted Logs", { foo: "bar" });
ctx.waitUntill(logger.flush())
}
}
Local development mode is disabled by default to improve performance.
#
Configuration
The BaselimeLogger class takes the following configuration options