• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

semperai / amica-personas / 18257321905

05 Oct 2025 10:11AM UTC coverage: 19.184% (-0.8%) from 20.007%
18257321905

push

github

web-flow
Merge pull request #23 from kasumi-1/import-api

Add new API service with credit-based auth and monitoring

894 of 1155 branches covered (77.4%)

Branch coverage included in aggregate %.

0 of 1185 new or added lines in 15 files covered. (0.0%)

4589 of 27426 relevant lines covered (16.73%)

59.47 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/api/src/utils/logger.ts
NEW
1
import pino, { type Logger } from "pino";
×
NEW
2
import { env } from "@/utils/envConfig";
×
3

4
// Create base logger with structured configuration
NEW
5
const baseLogger = pino({
×
NEW
6
  level: env.LOG_LEVEL || (env.isProduction ? "info" : "debug"),
×
NEW
7
  formatters: {
×
NEW
8
    level: (label) => {
×
NEW
9
      return { level: label };
×
NEW
10
    },
×
NEW
11
  },
×
NEW
12
  timestamp: pino.stdTimeFunctions.isoTime,
×
NEW
13
  ...(env.isProduction
×
NEW
14
    ? {
×
15
        // Production: JSON output for log aggregation
NEW
16
      }
×
NEW
17
    : {
×
18
        // Development: Pretty print
NEW
19
        transport: {
×
NEW
20
          target: "pino-pretty",
×
NEW
21
          options: {
×
NEW
22
            colorize: true,
×
NEW
23
            translateTime: "HH:MM:ss Z",
×
NEW
24
            ignore: "pid,hostname",
×
NEW
25
          },
×
NEW
26
        },
×
NEW
27
      }),
×
NEW
28
});
×
29

30
// Create logger with context helpers
NEW
31
export const logger = baseLogger;
×
32

33
// Helper to create child logger with context
NEW
34
export const createLogger = (context: Record<string, unknown>): Logger => {
×
NEW
35
  return logger.child(context);
×
NEW
36
};
×
37

38
// Helper to log errors with full context
NEW
39
export const logError = (error: Error, context?: Record<string, unknown>) => {
×
NEW
40
  logger.error(
×
NEW
41
    {
×
NEW
42
      err: {
×
NEW
43
        message: error.message,
×
NEW
44
        stack: error.stack,
×
NEW
45
        name: error.name,
×
NEW
46
        ...error,
×
NEW
47
      },
×
NEW
48
      ...context,
×
NEW
49
    },
×
NEW
50
    `Error: ${error.message}`,
×
NEW
51
  );
×
NEW
52
};
×
53

54
// Helper to log with request context
NEW
55
export const logWithRequest = (
×
NEW
56
  req: any,
×
NEW
57
  level: "info" | "warn" | "error",
×
NEW
58
  message: string,
×
NEW
59
  meta?: Record<string, unknown>,
×
NEW
60
) => {
×
NEW
61
  const requestContext = {
×
NEW
62
    requestId: req.id,
×
NEW
63
    method: req.method,
×
NEW
64
    path: req.path,
×
NEW
65
    ip: req.ip,
×
NEW
66
    userId: req.user?.id,
×
NEW
67
    ...meta,
×
NEW
68
  };
×
69

NEW
70
  logger[level](requestContext, message);
×
NEW
71
};
×
72

NEW
73
export default logger;
×
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc