
Company News
Socket Joins New OpenJS Program to Fund Node.js Security Work
Socket is joining the OpenJS Security Stewardship Program to fund Node.js vulnerability research, maintainer remediation, and security releases.
@sylphx/cat
Advanced tools
The fastest, lightest, and most extensible logger for JavaScript
1.97 KB • Zero dependencies • Universal runtime support
npm install @sylphx/cat
@sylphx/cat is a blazing-fast, minimal logger designed for all JavaScript runtimes. It provides structured JSON logging with automatic error serialization, type-safe APIs, and extensibility through formatters, transports, and plugins.
Perfect for CLIs, APIs, microservices, and any application where performance and bundle size matter.
import { createLogger } from '@sylphx/cat'
const logger = createLogger()
logger.info('Server started', { port: 3000 })
// {"level":"info","timestamp":1700000000000,"message":"Server started","data":{"port":3000}}
logger.error('Connection failed', { host: 'db.example.com' })
// {"level":"error","timestamp":1700000000000,"message":"Connection failed","data":{"host":"db.example.com"}}
Errors are automatically serialized with full stack traces:
import { createLogger, stdSerializers } from '@sylphx/cat'
const logger = createLogger({
serializers: stdSerializers
})
try {
throw new Error('Database connection failed')
} catch (err) {
logger.error('Failed to connect', { err })
// {"level":"error","message":"Failed to connect","err":{"message":"Database connection failed","stack":"..."}}
}
const logger = createLogger({ context: { service: 'api' } })
const requestLogger = logger.child({ requestId: 'abc-123' })
requestLogger.info('Processing request')
// {"level":"info","message":"Processing request","context":{"service":"api","requestId":"abc-123"}}
const logger = createLogger({ level: 'warn' })
logger.debug('This will not be logged')
logger.warn('This will be logged')
logger.error('This will also be logged')
createLogger(options?: LoggerOptions): LoggerCreates a new logger instance.
Options:
level?: LogLevel - Minimum log level (default: 'info')formatter?: Formatter - Log formatter (default: JSON)transports?: Transport[] - Output transports (default: console)plugins?: Plugin[] - Logger pluginscontext?: Record<string, unknown> - Global contextbatch?: boolean - Enable batching (default: false)batchSize?: number - Batch size (default: 100)batchInterval?: number - Batch interval in ms (default: 1000)Logger InterfaceMain logging methods:
trace(message: string, data?: Record<string, unknown>): voiddebug(message: string, data?: Record<string, unknown>): voidinfo(message: string, data?: Record<string, unknown>): voidwarn(message: string, data?: Record<string, unknown>): voiderror(message: string, data?: Record<string, unknown>): voidfatal(message: string, data?: Record<string, unknown>): voidUtility methods:
setLevel(level: LogLevel): voidchild(context: Record<string, unknown>): Loggerflush(): Promise<void>close(): Promise<void>jsonFormatter(): FormatterDefault JSON formatter (already included in core).
import { createLogger, jsonFormatter } from '@sylphx/cat'
const logger = createLogger({
formatter: jsonFormatter()
})
consoleTransport(): TransportDefault console transport (already included in core).
import { createLogger, consoleTransport } from '@sylphx/cat'
const logger = createLogger({
transports: [consoleTransport()]
})
stdSerializersStandard serializers including automatic error serialization.
import { createLogger, stdSerializers } from '@sylphx/cat'
const logger = createLogger({
serializers: stdSerializers
})
Available serializers:
err / error - Serializes Error objects with stack tracesserializeError(err: Error): SerializedErrorManually serialize an error object.
import { serializeError } from '@sylphx/cat'
const serialized = serializeError(new Error('Something went wrong'))
// { message: 'Something went wrong', stack: '...', name: 'Error' }
MIT © Kyle Zhu
FAQs
The fastest, lightest, most extensible logger for all JavaScript runtimes
The npm package @sylphx/cat receives a total of 3 weekly downloads. As such, @sylphx/cat popularity was classified as not popular.
We found that @sylphx/cat demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Company News
Socket is joining the OpenJS Security Stewardship Program to fund Node.js vulnerability research, maintainer remediation, and security releases.

Security News
Two compromised GitHub Actions were re-enabled with malicious tags intact, exposing thousands of downstream repositories to Mini Shai-Hulud.

Research
/Security News
A malicious Firefox extension fetches its payload after installation to evade detection, steal Google session cookies, and automate account takeover.