refactor: deduplicate logger into shared module (#39)
three files created identical pino logger instances with the same config. extract into src/logger.ts and import from each consumer. net -9 lines, no behavior change. Co-authored-by: ejae <ejae_dev@ejaes-Mac-mini.home> Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -6,7 +6,6 @@ import { spawn } from 'child_process';
|
|||||||
import fs from 'fs';
|
import fs from 'fs';
|
||||||
import os from 'os';
|
import os from 'os';
|
||||||
import path from 'path';
|
import path from 'path';
|
||||||
import pino from 'pino';
|
|
||||||
|
|
||||||
import {
|
import {
|
||||||
CONTAINER_IMAGE,
|
CONTAINER_IMAGE,
|
||||||
@@ -15,14 +14,10 @@ import {
|
|||||||
DATA_DIR,
|
DATA_DIR,
|
||||||
GROUPS_DIR,
|
GROUPS_DIR,
|
||||||
} from './config.js';
|
} from './config.js';
|
||||||
|
import { logger } from './logger.js';
|
||||||
import { validateAdditionalMounts } from './mount-security.js';
|
import { validateAdditionalMounts } from './mount-security.js';
|
||||||
import { RegisteredGroup } from './types.js';
|
import { RegisteredGroup } from './types.js';
|
||||||
|
|
||||||
const logger = pino({
|
|
||||||
level: process.env.LOG_LEVEL || 'info',
|
|
||||||
transport: { target: 'pino-pretty', options: { colorize: true } },
|
|
||||||
});
|
|
||||||
|
|
||||||
// Sentinel markers for robust output parsing (must match agent-runner)
|
// Sentinel markers for robust output parsing (must match agent-runner)
|
||||||
const OUTPUT_START_MARKER = '---NANOCLAW_OUTPUT_START---';
|
const OUTPUT_START_MARKER = '---NANOCLAW_OUTPUT_START---';
|
||||||
const OUTPUT_END_MARKER = '---NANOCLAW_OUTPUT_END---';
|
const OUTPUT_END_MARKER = '---NANOCLAW_OUTPUT_END---';
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
import { exec, execSync } from 'child_process';
|
import { exec, execSync } from 'child_process';
|
||||||
import fs from 'fs';
|
import fs from 'fs';
|
||||||
import path from 'path';
|
import path from 'path';
|
||||||
import pino from 'pino';
|
|
||||||
|
|
||||||
import makeWASocket, {
|
import makeWASocket, {
|
||||||
DisconnectReason,
|
DisconnectReason,
|
||||||
@@ -42,14 +41,10 @@ import {
|
|||||||
import { startSchedulerLoop } from './task-scheduler.js';
|
import { startSchedulerLoop } from './task-scheduler.js';
|
||||||
import { NewMessage, RegisteredGroup, Session } from './types.js';
|
import { NewMessage, RegisteredGroup, Session } from './types.js';
|
||||||
import { loadJson, saveJson } from './utils.js';
|
import { loadJson, saveJson } from './utils.js';
|
||||||
|
import { logger } from './logger.js';
|
||||||
|
|
||||||
const GROUP_SYNC_INTERVAL_MS = 24 * 60 * 60 * 1000; // 24 hours
|
const GROUP_SYNC_INTERVAL_MS = 24 * 60 * 60 * 1000; // 24 hours
|
||||||
|
|
||||||
const logger = pino({
|
|
||||||
level: process.env.LOG_LEVEL || 'info',
|
|
||||||
transport: { target: 'pino-pretty', options: { colorize: true } },
|
|
||||||
});
|
|
||||||
|
|
||||||
let sock: WASocket;
|
let sock: WASocket;
|
||||||
let lastTimestamp = '';
|
let lastTimestamp = '';
|
||||||
let sessions: Session = {};
|
let sessions: Session = {};
|
||||||
|
|||||||
6
src/logger.ts
Normal file
6
src/logger.ts
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
import pino from 'pino';
|
||||||
|
|
||||||
|
export const logger = pino({
|
||||||
|
level: process.env.LOG_LEVEL || 'info',
|
||||||
|
transport: { target: 'pino-pretty', options: { colorize: true } },
|
||||||
|
});
|
||||||
@@ -1,7 +1,6 @@
|
|||||||
import { CronExpressionParser } from 'cron-parser';
|
import { CronExpressionParser } from 'cron-parser';
|
||||||
import fs from 'fs';
|
import fs from 'fs';
|
||||||
import path from 'path';
|
import path from 'path';
|
||||||
import pino from 'pino';
|
|
||||||
|
|
||||||
import {
|
import {
|
||||||
DATA_DIR,
|
DATA_DIR,
|
||||||
@@ -18,13 +17,9 @@ import {
|
|||||||
logTaskRun,
|
logTaskRun,
|
||||||
updateTaskAfterRun,
|
updateTaskAfterRun,
|
||||||
} from './db.js';
|
} from './db.js';
|
||||||
|
import { logger } from './logger.js';
|
||||||
import { RegisteredGroup, ScheduledTask } from './types.js';
|
import { RegisteredGroup, ScheduledTask } from './types.js';
|
||||||
|
|
||||||
const logger = pino({
|
|
||||||
level: process.env.LOG_LEVEL || 'info',
|
|
||||||
transport: { target: 'pino-pretty', options: { colorize: true } },
|
|
||||||
});
|
|
||||||
|
|
||||||
export interface SchedulerDependencies {
|
export interface SchedulerDependencies {
|
||||||
sendMessage: (jid: string, text: string) => Promise<void>;
|
sendMessage: (jid: string, text: string) => Promise<void>;
|
||||||
registeredGroups: () => Record<string, RegisteredGroup>;
|
registeredGroups: () => Record<string, RegisteredGroup>;
|
||||||
|
|||||||
Reference in New Issue
Block a user