grafana-logger
v1.1.3
Published
A functional logging package for Grafana with structured JSON output
Maintainers
Readme
Grafana Logger - TypeScript/Node.js
A structured logging library designed for Grafana with JSON output.
Installation
npm install grafana-loggerUsage
Basic Logging
import { gl } from "grafana-logger"
const logger = gl("my-service")
logger.info("Application started")
logger.warn("This is a warning")
logger.error("Something went wrong")
logger.debug("Debug information")
logger.fatal("Critical error")
logger.trace("Detailed trace information")Fluent API with Chaining
import { gl } from "grafana-logger"
const logger = gl("cb-backend-server")
logger.component("auth").traceId("abc123").info("User logged in")
logger
.component("database")
.tag("slow-query")
.tags(["performance", "optimization"])
.warn("Query took longer than expected")Request Logging
logger
.requestPayload({
method: "POST",
path: "/api/users",
user_id: "12345",
})
.component("api")
.info("Processing request")Performance Timing
logger.time("database_query")
// Later in your code...
logger.timeEnd("database_query")Child Logger
const childLogger = logger.child({
user_id: "12345",
session_id: "sess_abc123",
})
childLogger.info("Child logger with additional metadata")Advanced Usage
logger
.component("payment-processor")
.traceId("trace-456")
.traceFile(__filename)
.processId("worker-1")
.tags(["payment", "critical"])
.requestPayload({
amount: 100.0,
currency: "USD",
customer_id: "cust_123",
})
.info("Processing payment")API Reference
Main Function
gl(service: string) -> Logger: Create a new logger instance for the specified service
Logger Methods
Builder Methods (return Logger for chaining)
component(component: string): Set the component nametraceFile(traceFile: string): Set the trace file pathrequestPayload(payload: object): Set the request payloadprocessId(processId: string): Set the process ID (auto-filled withprocess.pidby default)traceId(traceId: string): Set the distributed tracing IDtags(tags: string[]): Set multiple tagstag(tag: string): Add a single tag
Logging Methods (log immediately and end the chain)
debug(message: string): Log at debug levelinfo(message: string): Log at info levelwarn(message: string): Log at warning levelerror(message: string): Log at error levelfatal(message: string): Log at fatal leveltrace(message: string): Log at trace levelchild(metadata: object): Create a child logger with additional metadatatime(name: string): Start a named timertimeEnd(name: string): End a named timer and log the duration
