SQLite MCP Server
by jacksteamdev
- src
import { appendFileSync } from 'fs';
import { join } from 'path/posix';
type LogLevel = 'DEBUG' | 'INFO' | 'WARN' | 'ERROR' | 'FATAL';
const formatMessage = (
level: LogLevel,
message: unknown,
meta?: Record<string, unknown>,
) => {
const timestamp = new Date().toISOString();
const metaStr = meta ? ` ${JSON.stringify(meta)}` : '';
return `${timestamp} [${level.padEnd(5)}] ${JSON.stringify(message)}${metaStr}\n`;
};
const log = (
level: LogLevel,
message: unknown,
meta?: Record<string, unknown>,
) => {
appendFileSync(
join(import.meta.dir, '../server.log'),
formatMessage(level, message, meta),
);
};
export const debug = (message: unknown, meta?: Record<string, unknown>) =>
log('DEBUG', message, meta);
export const info = (message: unknown, meta?: Record<string, unknown>) =>
log('INFO', message, meta);
export const warn = (message: unknown, meta?: Record<string, unknown>) =>
log('WARN', message, meta);
export const error = (message: unknown, meta?: Record<string, unknown>) =>
log('ERROR', message, meta);
export const fatal = (message: unknown, meta?: Record<string, unknown>) =>
log('FATAL', message, meta);
export default { debug, info, warn, error, fatal };
// Example usage:
// logger.info('Server started', { port: 3000 });
// logger.error('Database connection failed', { code: 'ECONNREFUSED' });