66import pino from 'pino' ;
77
88/**
9- * Create a logger instance
9+ * Create a logger instance with consistent configuration
10+ * @param name - Component or module name for the logger
11+ * @param _options - Optional additional configuration
12+ * @returns Configured pino logger instance
1013 */
1114export function createLogger ( name : string , _options ?: unknown ) : pino . Logger {
1215 return pino ( {
@@ -15,41 +18,60 @@ export function createLogger(name: string, _options?: unknown): pino.Logger {
1518 transport : process . env . NODE_ENV === 'development' ? {
1619 target : 'pino-pretty' ,
1720 options : {
18- colorize : true
21+ colorize : true ,
22+ translateTime : 'HH:MM:ss' ,
23+ ignore : 'pid,hostname' ,
1924 }
20- } : undefined
25+ } : undefined ,
26+ formatters : {
27+ level : ( label ) => {
28+ return { level : label . toUpperCase ( ) } ;
29+ }
30+ }
2131 } ) ;
2232}
2333
2434/**
25- * @description Simple logger utility
26- */
27-
28- /**
29- * Log a message with optional data
35+ * Simple log function for basic logging needs
3036 * @param message - Message to log
31- * @param data - Optional data to log
37+ * @param data - Optional data to include
3238 */
3339export function log ( message : string , data ?: unknown ) : void {
3440 console . log ( message , data ) ;
3541}
3642
37- // Export a default logger instance
3843/**
39- * Logger instance for the application
44+ * Default logger instance for the application
45+ * Includes enhanced error handling and formatting
4046 */
4147export const logger : pino . Logger = pino ( {
42- name : 'default' ,
43- level : 'info' ,
48+ name : 'nostr-crypto-utils' ,
49+ level : process . env . LOG_LEVEL || 'info' ,
50+ transport : process . env . NODE_ENV === 'development' ? {
51+ target : 'pino-pretty' ,
52+ options : {
53+ colorize : true ,
54+ translateTime : 'HH:MM:ss' ,
55+ ignore : 'pid,hostname' ,
56+ }
57+ } : undefined ,
4458 formatters : {
59+ level : ( label ) => {
60+ return { level : label . toUpperCase ( ) } ;
61+ } ,
4562 log : ( obj : Record < string , unknown > ) => {
4663 // Convert error objects to strings for better logging
4764 if ( obj && typeof obj === 'object' && 'err' in obj ) {
4865 const newObj = { ...obj } ;
4966 if ( newObj . err instanceof Error ) {
50- newObj . err = newObj . err . message ;
67+ const err = newObj . err as Error ;
68+ newObj . err = {
69+ message : err . message ,
70+ stack : err . stack ,
71+ name : err . name ,
72+ } ;
5173 }
52- return newObj as Record < string , unknown > ;
74+ return newObj ;
5375 }
5476 return obj ;
5577 }
0 commit comments