social bookmarking for atproto
1/*
2 * clippr: a social bookmarking service for the AT Protocol
3 * Copyright (c) 2025 clippr contributors.
4 * SPDX-License-Identifier: AGPL-3.0-only
5 */
6
7import { createLogger, format, transports } from "winston";
8import { Config } from "./config.js";
9
10const config = Config.getInstance().getConfig();
11const logLevel = config.logLevel;
12
13const Logger = createLogger({
14 level: logLevel,
15 transports: [
16 new transports.Console({
17 format: format.combine(
18 format.colorize(),
19 format.timestamp(),
20 format.printf(({ level, message, timestamp }) => {
21 return `[${timestamp}] ${level}: ${message}`;
22 }),
23 ),
24 }),
25 new transports.File({
26 dirname: "logs",
27 filename: "clippr-error.log",
28 level: "error",
29 }),
30 new transports.File({
31 dirname: "logs",
32 filename: "clippr-combined.log",
33 }),
34 ],
35 format: format.combine(format.timestamp(), format.json()),
36 defaultMeta: { service: "clippr-backend" },
37});
38
39export default Logger;