Jainish1808 commited on
Commit
307f342
·
verified ·
1 Parent(s): 4e4664a

Upload utils/logger.py with huggingface_hub

Browse files
Files changed (1) hide show
  1. utils/logger.py +57 -29
utils/logger.py CHANGED
@@ -128,10 +128,24 @@ class CustomFormatter(logging.Formatter):
128
  def setup_logging():
129
  """Setup comprehensive logging configuration"""
130
 
131
- # Create logs directory if it doesn't exist
132
- if settings.LOG_FILE_ENABLED:
133
- log_path = Path(settings.LOG_FILE_PATH)
134
- log_path.parent.mkdir(parents=True, exist_ok=True)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
135
 
136
  # Configure root logger
137
  logging.basicConfig(
@@ -153,21 +167,24 @@ def setup_logging():
153
  tx_logger.setLevel(logging.INFO)
154
 
155
  # Add file handlers if enabled
156
- if settings.LOG_FILE_ENABLED:
157
- # Rotating file handler for general logs
158
- file_handler = logging.handlers.RotatingFileHandler(
159
- settings.LOG_FILE_PATH,
160
- maxBytes=settings.LOG_FILE_MAX_SIZE,
161
- backupCount=settings.LOG_FILE_BACKUP_COUNT
162
- )
163
- file_handler.setFormatter(CustomFormatter(
164
- '%(asctime)s - %(environment)s - %(name)s - %(levelname)s - %(message)s'
165
- ))
166
-
167
- # Add to all loggers
168
- app_logger.addHandler(file_handler)
169
- perf_logger.addHandler(file_handler)
170
- tx_logger.addHandler(file_handler)
 
 
 
171
 
172
  # Console handler for development
173
  if settings.is_development():
@@ -279,10 +296,18 @@ def setup_logger(
279
  if logger.handlers:
280
  return logger
281
 
282
- # Create logs directory if it doesn't exist
 
283
  if log_to_file and settings.LOG_FILE_ENABLED:
284
- log_path = Path(settings.LOG_FILE_PATH)
285
- log_path.parent.mkdir(parents=True, exist_ok=True)
 
 
 
 
 
 
 
286
 
287
  # Create formatters
288
  detailed_formatter = logging.Formatter(
@@ -304,13 +329,16 @@ def setup_logger(
304
 
305
  # File handler
306
  if log_to_file and settings.LOG_FILE_ENABLED:
307
- file_handler = logging.handlers.RotatingFileHandler(
308
- settings.LOG_FILE_PATH,
309
- maxBytes=settings.LOG_FILE_MAX_SIZE,
310
- backupCount=settings.LOG_FILE_BACKUP_COUNT
311
- )
312
- file_handler.setFormatter(detailed_formatter)
313
- logger.addHandler(file_handler)
 
 
 
314
 
315
  return logger
316
 
 
128
  def setup_logging():
129
  """Setup comprehensive logging configuration"""
130
 
131
+ # Determine log path - use /tmp on cloud platforms (HF Spaces, etc.)
132
+ log_file_enabled = settings.LOG_FILE_ENABLED
133
+ log_file_path = settings.LOG_FILE_PATH
134
+
135
+ # Try to create logs directory, fall back to /tmp or disable if fails
136
+ if log_file_enabled:
137
+ try:
138
+ log_path = Path(log_file_path)
139
+ log_path.parent.mkdir(parents=True, exist_ok=True)
140
+ except PermissionError:
141
+ # Fall back to /tmp for cloud environments
142
+ log_file_path = "/tmp/app.log"
143
+ try:
144
+ Path(log_file_path).parent.mkdir(parents=True, exist_ok=True)
145
+ except PermissionError:
146
+ # Disable file logging if we can't write anywhere
147
+ log_file_enabled = False
148
+ print("[LOGGER] Warning: Cannot create log directory, file logging disabled")
149
 
150
  # Configure root logger
151
  logging.basicConfig(
 
167
  tx_logger.setLevel(logging.INFO)
168
 
169
  # Add file handlers if enabled
170
+ if log_file_enabled:
171
+ try:
172
+ # Rotating file handler for general logs
173
+ file_handler = logging.handlers.RotatingFileHandler(
174
+ log_file_path,
175
+ maxBytes=settings.LOG_FILE_MAX_SIZE,
176
+ backupCount=settings.LOG_FILE_BACKUP_COUNT
177
+ )
178
+ file_handler.setFormatter(CustomFormatter(
179
+ '%(asctime)s - %(environment)s - %(name)s - %(levelname)s - %(message)s'
180
+ ))
181
+
182
+ # Add to all loggers
183
+ app_logger.addHandler(file_handler)
184
+ perf_logger.addHandler(file_handler)
185
+ tx_logger.addHandler(file_handler)
186
+ except PermissionError:
187
+ print("[LOGGER] Warning: Cannot create log file, file logging disabled")
188
 
189
  # Console handler for development
190
  if settings.is_development():
 
296
  if logger.handlers:
297
  return logger
298
 
299
+ # Create logs directory if it doesn't exist - use /tmp as fallback
300
+ log_file_path = settings.LOG_FILE_PATH
301
  if log_to_file and settings.LOG_FILE_ENABLED:
302
+ try:
303
+ log_path = Path(log_file_path)
304
+ log_path.parent.mkdir(parents=True, exist_ok=True)
305
+ except PermissionError:
306
+ log_file_path = "/tmp/app.log"
307
+ try:
308
+ Path(log_file_path).parent.mkdir(parents=True, exist_ok=True)
309
+ except PermissionError:
310
+ log_to_file = False
311
 
312
  # Create formatters
313
  detailed_formatter = logging.Formatter(
 
329
 
330
  # File handler
331
  if log_to_file and settings.LOG_FILE_ENABLED:
332
+ try:
333
+ file_handler = logging.handlers.RotatingFileHandler(
334
+ log_file_path,
335
+ maxBytes=settings.LOG_FILE_MAX_SIZE,
336
+ backupCount=settings.LOG_FILE_BACKUP_COUNT
337
+ )
338
+ file_handler.setFormatter(detailed_formatter)
339
+ logger.addHandler(file_handler)
340
+ except PermissionError:
341
+ pass # Skip file logging if permission denied
342
 
343
  return logger
344