TIMBER2024 / TimberTime

Project ♠️♾️TimberTime🧬
Apache License 2.0
0 stars 0 forks source link

? #1

Open TIMBER2024 opened 4 hours ago

TIMBER2024 commented 4 hours ago

import logging from logging.handlers import TimedRotatingFileHandler from flask import Flask, request, jsonify import json

app = Flask(name)

Configure logging

logger = logging.getLogger('AppDebugLogger') logger.setLevel(logging.DEBUG)

Create a handler that rotates the log file daily

handler = TimedRotatingFileHandler('app_debug.log', when='midnight', interval=1) handler.setLevel(logging.DEBUG)

Create a formatter and add it to the handler

formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') handler.setFormatter(formatter)

Add the handler to the logger

logger.addHandler(handler)

@app.route('/log', methods=['POST']) def log_data(): data = request.get_json() if data and 'message' in data: message = data['message'] log_level = data.get('level', 'INFO').upper()

    try:
        # Convert log_level string to logging level
        level = getattr(logging, log_level)
        logger.log(level, message)
        return jsonify({"status": "success", "message": "Log received and processed"}), 20
TIMBER2024 commented 4 hours ago

Grok says

from flask import Flask, request, jsonify import logging from logging.handlers import TimedRotatingFileHandler

app = Flask(name)

Configure logging

logger = logging.getLogger('AppDebugLogger') logger.setLevel(logging.DEBUG)

Create a handler that rotates the log file daily

handler = TimedRotatingFileHandler('app_debug.log', when='midnight', interval=1, backupCount=7) handler.setLevel(logging.DEBUG)

Create a formatter and add it to the handler

formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') handler.setFormatter(formatter)

Add the handler to the logger

logger.addHandler(handler)

@app.route('/log', methods=['POST']) def log_data(): """ Endpoint to receive log messages from external sources.

Expects JSON in the request body with:
{
    "message": "The log message",
    "level": "INFO"  # or DEBUG, WARNING, ERROR, etc.
}

Returns:
- JSON response indicating success or error
"""
data = request.get_json()

if not data or 'message' not in data:
    return jsonify({"status": "error", "message": "Invalid data format"}), 400

message = data['message']
log_level = data.get('level', 'INFO').upper()

try:
    # Convert log_level string to logging level
    level = getattr(logging, log_level)
    logger.log(level, message)
    return jsonify({"status": "success", "message": "Log received and processed"}), 200
except AttributeError:
    # If log_level is not a valid logging level
    logger.error(f"Invalid log level provided: {log_level}")
    return jsonify({"status": "error", "message": "Invalid log level"}), 400

@app.route('/') def hello(): """A simple health check endpoint.""" return "Debug server is running.", 200

if name == 'main': app.run(debug=True, host='0.0.0.0', port=5000)

TIMBER2024 commented 4 hours ago

Certainly. Here's how you can expand on the code to handle the JSON data, check for validity, and return appropriate responses:


from flask import Flask, request, jsonify
import logging
from logging.handlers import TimedRotatingFileHandler

app = Flask(__name__)

# Configure logging
logger = logging.getLogger('AppDebugLogger')
logger.setLevel(logging.DEBUG)

# Create a handler that rotates the log file daily
handler = TimedRotatingFileHandler('app_debug.log', when='midnight', interval=1, backupCount=7)
handler.setLevel(logging.DEBUG)

# Create a formatter and add it to the handler
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
handler.setFormatter(formatter)

# Add the handler to the logger
logger.addHandler(handler)

@app.route('/log', methods=['POST'])
def log_data():
    """
    Endpoint to receive log messages from external sources.

    Expects JSON in the request body with:
    {
        "message": "The log message",
        "level": "INFO"  # or DEBUG, WARNING, ERROR, etc.
    }

    Returns:
    - JSON response indicating success or error
    """
    data = request.get_json()

    if not data or 'message' not in data:
        logger.error("Received invalid JSON or missing 'message' field")
        return jsonify({"status": "error", "message": "Invalid data format or missing message"}), 400

    message = data['message']
    log_level = data.get('level', 'INFO').upper()

    try:
        # Convert log_level string to logging level
        level = getattr(logging, log_level)
        logger.log(level, message)
        return jsonify({"status": "success", "message": "Log received and processed"}), 200
    except AttributeError:
        # If log_level is not a valid logging level
        logger.error(f"Invalid log level provided: {log_level}")
        return jsonify({"status": "error", "message": f"Invalid log level: {log_level}"}), 400

@app.route('/')
def hello():
    """A simple health check endpoint."""
    return "Debug server is running.", 200

if