File size: 1,461 Bytes
8efce19
999fa5d
f2887b6
b3adc22
8e18d18
0a9e54c
a9f1f12
466eeae
b3adc22
9675b3c
b3adc22
 
 
27e12ac
b3adc22
27e12ac
b3adc22
 
999fa5d
 
115c7b7
f2887b6
999fa5d
f2887b6
 
 
999fa5d
f2887b6
999fa5d
c3e1f5a
 
 
 
 
 
 
 
115c7b7
f2887b6
115c7b7
999fa5d
115c7b7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import subprocess
import logging
from fastapi import FastAPI, Request, HTTPException
from fastapi.responses import HTMLResponse
app = FastAPI()

subprocess.Popen(["python3", "TimeStampBuddy/cron_processor.py"])

@app.get("/", response_class=HTMLResponse)
def welcome():
    return """
    <div>
        <h1>Hello!</h1>
        <p>This service powers the <a href="https://x.com/TimeStampBuddy" target="_blank" rel="noopener noreferrer">@TimeStampBuddy</a>'s activity on Twitter.</p>
        <p>For more details, visit 
            <a href="https://github.com/Mihaiii/TimeStampBuddy" target="_blank" rel="noopener noreferrer">GitHub Repository</a>.
        </p>
    </div>
    """

@app.post("/set_log_level")
async def set_log_level(request: Request):
    try:
        body = await request.json()
        level = body.get("level", "").upper()
        
        if level in ['DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL']:
            logger = logging.getLogger()
            logger.setLevel(level)

            for logger_name in logging.root.manager.loggerDict:
                logging.getLogger(logger_name).setLevel(level)

            for handler in logger.handlers:
                handler.setLevel(level)

                
            return {"message": f"Log level changed to {level}"}
        
        raise HTTPException(status_code=400, detail="Invalid log level")
    except Exception as e:
        raise HTTPException(status_code=500, detail=str(e))