11
11
'''
12
12
13
13
import os
14
- from dotenv import load_dotenv
14
+ import json
15
15
16
- env_path = os .path .join (os .getcwd (), '.env' )
17
- load_dotenv (env_path ) # Load environment variables
18
16
19
17
LOG_LEVELS = ['NOTSET' , 'DEBUG' , 'INFO' , 'WARN' , 'ERROR' ]
20
18
@@ -46,7 +44,8 @@ class RunPodLogger:
46
44
__instance = None
47
45
level = _validate_log_level (os .environ .get (
48
46
'RUNPOD_LOG_LEVEL' ,
49
- os .environ .get ('RUNPOD_DEBUG_LEVEL' , 'DEBUG' )))
47
+ os .environ .get ('RUNPOD_DEBUG_LEVEL' , 'DEBUG' ))
48
+ )
50
49
51
50
def __new__ (cls ):
52
51
if RunPodLogger .__instance is None :
@@ -61,7 +60,7 @@ def set_level(self, new_level):
61
60
self .level = _validate_log_level (new_level )
62
61
self .info (f'Log level set to { self .level } ' )
63
62
64
- def log (self , message , message_level = 'INFO' ):
63
+ def log (self , message , message_level = 'INFO' , job_id = None ):
65
64
'''
66
65
Log message to stdout if RUNPOD_DEBUG is true.
67
66
'''
@@ -72,6 +71,15 @@ def log(self, message, message_level='INFO'):
72
71
if level_index > LOG_LEVELS .index (message_level ) and message_level != 'TIP' :
73
72
return
74
73
74
+ if job_id :
75
+ log_json = {
76
+ 'requestId' : job_id ,
77
+ 'message' : message ,
78
+ 'level' : message_level
79
+ }
80
+ print (json .dumps (log_json ), flush = True )
81
+ return
82
+
75
83
print (f'{ message_level .ljust (7 )} | { message } ' , flush = True )
76
84
return
77
85
@@ -84,29 +92,29 @@ def secret(self, secret_name, secret):
84
92
redacted_secret = secret [0 ] + '*' * (len (secret )- 2 ) + secret [- 1 ]
85
93
self .info (f"{ secret_name } : { redacted_secret } " )
86
94
87
- def debug (self , message ):
95
+ def debug (self , message , job_id = None ):
88
96
'''
89
97
debug log
90
98
'''
91
- self .log (message , 'DEBUG' )
99
+ self .log (message , 'DEBUG' , job_id )
92
100
93
- def info (self , message ):
101
+ def info (self , message , job_id = None ):
94
102
'''
95
103
info log
96
104
'''
97
- self .log (message , 'INFO' )
105
+ self .log (message , 'INFO' , job_id )
98
106
99
- def warn (self , message ):
107
+ def warn (self , message , job_id = None ):
100
108
'''
101
109
warn log
102
110
'''
103
- self .log (message , 'WARN' )
111
+ self .log (message , 'WARN' , job_id )
104
112
105
- def error (self , message ):
113
+ def error (self , message , job_id = None ):
106
114
'''
107
115
error log
108
116
'''
109
- self .log (message , 'ERROR' )
117
+ self .log (message , 'ERROR' , job_id )
110
118
111
119
def tip (self , message ):
112
120
'''
0 commit comments