asepulloh0109@gmail.com commited on
Commit
2214ee5
·
1 Parent(s): f9a7150

add helper for print logging

Browse files
Files changed (2) hide show
  1. app/main.py +2 -1
  2. app/utils.py +22 -1
app/main.py CHANGED
@@ -14,7 +14,7 @@ from openai import OpenAI
14
  import psycopg2
15
  from psycopg2 import sql
16
  import os
17
- from app.utils import get_api_key, get_user_info, update_user, upload_file_to_s3, get_user, upload_mementos_to_db
18
  from dotenv import load_dotenv
19
  import logging.config
20
  import time
@@ -239,6 +239,7 @@ class ErrorResponse(BaseModel):
239
 
240
  @app.get("/ok")
241
  def ok_endpoint():
 
242
  logger.info("Health check endpoint called", extra={"endpoint": "/ok"})
243
  return {"message": "ok"}
244
 
 
14
  import psycopg2
15
  from psycopg2 import sql
16
  import os
17
+ from app.utils import get_api_key, get_user_info, print_log, update_user, upload_file_to_s3, get_user, upload_mementos_to_db
18
  from dotenv import load_dotenv
19
  import logging.config
20
  import time
 
239
 
240
  @app.get("/ok")
241
  def ok_endpoint():
242
+ print_log("INFO", "health check endpoint")
243
  logger.info("Health check endpoint called", extra={"endpoint": "/ok"})
244
  return {"message": "ok"}
245
 
app/utils.py CHANGED
@@ -17,6 +17,7 @@ from psycopg2 import sql
17
  import os
18
  from dotenv import load_dotenv
19
  from app.user import User
 
20
 
21
  load_dotenv()
22
 
@@ -254,4 +255,24 @@ def upload_mementos_to_db(user_id):
254
  raise ConnectionError(f"Database error: {str(e)}")
255
  except Exception as e:
256
  logger.error(f"Unexpected error uploading mementos: {str(e)}", extra={'user_id': user_id, 'endpoint': function_name})
257
- return False
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17
  import os
18
  from dotenv import load_dotenv
19
  from app.user import User
20
+ import datetime
21
 
22
  load_dotenv()
23
 
 
255
  raise ConnectionError(f"Database error: {str(e)}")
256
  except Exception as e:
257
  logger.error(f"Unexpected error uploading mementos: {str(e)}", extra={'user_id': user_id, 'endpoint': function_name})
258
+ return False
259
+
260
+ def print_log(level, message, **kwargs):
261
+ """
262
+ Print log in JSON format for better readability in CloudWatch.
263
+
264
+ Parameters:
265
+ level (str): The log level (e.g., "INFO", "ERROR", "DEBUG").
266
+ message (str): The log message.
267
+ **kwargs: Additional key-value pairs to include in the log.
268
+
269
+ example:
270
+ print_log("INFO", "User logged in", user_id=123, action="login")
271
+ """
272
+ log_entry = {
273
+ "timestamp": datetime.datetime.utcnow().isoformat() + "Z",
274
+ "level": level,
275
+ "message": message,
276
+ }
277
+ log_entry.update(kwargs)
278
+ print(json.dumps(log_entry, ensure_ascii=False))