CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl-labs/structured-logging

Every backend service MUST use structured logging — pino/structlog/slog, JSON format, request IDs, proper log levels. console.log is never acceptable.

88

3.03x
Quality

85%

Does it follow best practices?

Impact

97%

3.03x

Average score across 4 eval scenarios

SecuritybySnyk

Passed

No known issues

Overview
Quality
Evals
Security
Files

Evaluation results

100%

86%

Inventory Webhook Receiver

Criteria
Without context
With context

slog or structured logger used (not fmt.Println)

0%

100%

JSON log output configured

20%

100%

Request ID middleware

0%

100%

Request ID in response header

0%

100%

Logger in request context

0%

100%

Per-request completion log

70%

100%

Health check excluded from request logging

0%

100%

Business events logged at info

0%

100%

Validation failures and 404 not logged as error

50%

100%

Startup logged with structured logger

20%

100%

Structured fields not formatted strings

0%

100%

Errors with context

0%

100%

91%

26%

Email Notification Job Processor

Criteria
Without context
With context

Structured logger used (not console.log)

26%

100%

Job ID correlation in logs

100%

100%

Job lifecycle logged

75%

100%

Startup logged with structured logger

75%

75%

Shutdown logged with structured logger

75%

100%

Error logging with context

80%

80%

Log levels used correctly

90%

100%

No sensitive data logged

12%

37%

Log level configurable via environment variable

0%

100%

JSON log output

100%

100%

Structured fields not string interpolation

100%

100%

100%

63%

User Notification Preferences API

Criteria
Without context
With context

Structured logger used (not print)

53%

100%

Request ID middleware

0%

100%

Request ID in response header

0%

100%

Request ID propagated to log entries

0%

100%

Business events logged at info level

0%

100%

404 not logged as error

50%

100%

Per-request completion log

75%

100%

Startup logged with structured logger

71%

100%

No sensitive data logged

100%

100%

Log level configurable via environment variable

0%

100%

Context cleanup after request

100%

100%

Structured fields not string interpolation

20%

100%

100%

88%

Payment Processing API

Criteria
Without context
With context

Structured logger used (not console.log)

0%

100%

JSON log output

0%

100%

Request ID middleware

0%

100%

Request ID in response header

0%

100%

Request ID propagated to log entries

0%

100%

Per-request completion log

0%

100%

Business events logged at info level

0%

100%

404 and validation failures not logged as error

50%

100%

No sensitive data logged

100%

100%

Log level configurable via environment variable

0%

100%

Startup logged with structured logger

0%

100%

Evaluated
Agent
Claude Code
Model
Claude Sonnet 4.6

Table of Contents