# HG changeset patch # User June Park # Date 1767463840 28800 # Node ID f6d2f2eaaf8401f6157423cff2409aa0d53e3301 # Parent 1065c226e52bcbc67d88a0b8afac9f08a96fb826 Removed unneeded files. diff -r 1065c226e52b -r f6d2f2eaaf84 seobeo/LOGGING.md --- a/seobeo/LOGGING.md Sat Jan 03 08:58:58 2026 -0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,157 +0,0 @@ -# Seobeo Logging System - -## Overview - -All `printf` statements in the seobeo library have been replaced with `Seobeo_Log()` calls for consistent, level-based logging with optional debug mode. - -## Log Levels - -```c -typedef enum { - SEOBEO_INFO = 0, // General information (server start, mode, etc.) - SEOBEO_WARNING, // Warnings (SSL not compiled, etc.) - SEOBEO_ERROR, // Errors (allocation failures, connection errors, etc.) - SEOBEO_DEBUG, // Debug messages (only shown in development mode) -} Seobeo_Log_Level; -``` - -## Usage - -```c -Seobeo_Log(SEOBEO_INFO, "Listening on port %s\n", port); -Seobeo_Log(SEOBEO_ERROR, "Failed to allocate %zu bytes\n", size); -Seobeo_Log(SEOBEO_DEBUG, "Request line (first %zu bytes)\n", len); -``` - -## Debug Mode Control - -Debug logs are controlled by the `SEOBEO_ENABLE_DEBUG` macro: - -- **Production builds**: Debug logs are disabled (not compiled in) -- **Development builds**: Debug logs are enabled via `-DSEOBEO_ENABLE_DEBUG` - -## Build Targets - -### Seobeo Library - -#### Production (No Debug Logs) -```bash -# macOS -//seobeo:seobeo_server_macos - -# Linux -//seobeo:seobeo_server_linux - -# Platform-agnostic alias -//seobeo:seobeo_server -``` - -#### Development (With Debug Logs) -```bash -# macOS -//seobeo:seobeo_server_macos_dev - -# Linux -//seobeo:seobeo_server_linux_dev - -# Platform-agnostic alias -//seobeo:seobeo_server_dev -``` - -### MrJuneJune Server - -#### Production Build -```bash -# Build -bazel build //mrjunejune:mrjunejune_server - -# Run -bazel run //mrjunejune:mrjunejune_server - -# Bundle (for deployment) -bazel build //mrjunejune:mrjunejune_server_bundle -``` - -#### Development Build (With Debug Logs) -```bash -# Build -bazel build //mrjunejune:mrjunejune_server_dev - -# Run -bazel run //mrjunejune:mrjunejune_server_dev - -# Bundle -bazel build //mrjunejune:mrjunejune_server_dev_bundle -``` - -## Log Output Format - -All logs are prefixed with their level: - -``` -[INFO] Listening on port 6969 -[INFO] Server mode: EDGE -[ERROR] Failed to allocate 1024 bytes for body -[DEBUG] Request line (first 200 bytes) -[DEBUG] sscanf returned 3 (method='GET', path='/', version='HTTP/1.1') -``` - -## Changes Summary - -### Files Modified - -1. **seobeo/s_web.c** - - Replaced 26 printf statements with Seobeo_Log - - Updated logging to use appropriate levels (INFO, ERROR, DEBUG) - -2. **seobeo/s_linux_network.c** - - Replaced 10 printf statements with Seobeo_Log - - Added proper error and debug logging for network operations - -3. **seobeo/s_ssl.c** - - Replaced 5 printf/fprintf statements with Seobeo_Log - - SSL errors now use SEOBEO_ERROR level - - SSL info uses SEOBEO_INFO level - -4. **seobeo/BUILD** - - Added `seobeo_server_dev` alias for development builds - - Added `seobeo_server_macos_dev` with `SEOBEO_ENABLE_DEBUG` - - Added `seobeo_server_linux_dev` with `SEOBEO_ENABLE_DEBUG` - -5. **mrjunejune/BUILD** - - Added `mrjunejune_server_dev` binary target - - Added `mrjunejune_server_dev_bundle` for development deployment - -## Benefits - -1. **Cleaner Production Logs**: Debug messages don't clutter production output -2. **Better Debugging**: Enable verbose logging during development -3. **Consistent Format**: All logs follow the same `[LEVEL] message` format -4. **Conditional Compilation**: Debug code is completely removed from production builds (zero runtime overhead) -5. **Easy Toggle**: Switch between dev and prod with different build targets - -## Examples - -### Running in Development Mode -```bash -$ bazel run //mrjunejune:mrjunejune_server_dev -[INFO] Listening on port 6969 -[INFO] Server mode: EDGE -[DEBUG] Request line (first 30 bytes) -[DEBUG] sscanf returned 3 (method='GET', path='/', version='HTTP/1.1') -[DEBUG] Allocating method_copy -[DEBUG] Allocating version_copy -[DEBUG] Map now has 2 entries -[DEBUG] File path: /index.html -Body Size: 1234 -[DEBUG] Request handled successfully -``` - -### Running in Production Mode -```bash -$ bazel run //mrjunejune:mrjunejune_server -[INFO] Listening on port 6969 -[INFO] Server mode: EDGE -``` - -Notice that debug messages are completely absent in production mode!