sqlitelogs
Val Town is a collaborative website to build and scale JavaScript apps.
Deploy APIs, crons, & store data β all from the browser, and deployed in milliseconds.
Viewing readonly version of main branch: v2View latest version
A simple, powerful logging system for Val Town that stores logs in SQLite and provides both a web interface and API for viewing and searching logs.
- π Log any data type with automatic formatting
- π Search logs with full-text search
- π Clean, dark-themed web interface
- π± Responsive design that works on mobile and desktop
- π Pagination and sorting options
- π API access for programmatic log retrieval
Import the log function from the logger module and use it to log any data:
import { log } from "./logger.tsx";
// Log simple messages
await log("User signed up");
// Log multiple values
await log("User", userId, "performed action", actionType);
// Log objects and complex data
await log("Request data:", requestObject);
await log("Error occurred:", errorObject);
The logger automatically formats and stores all data types appropriately.
Access the web interface by visiting the val's URL without any path parameters. The interface provides:
- Search functionality
- Pagination controls
- Sorting options (newest/oldest first)
- Expandable log entries (click on any log to see the full content)
- Adjustable items per page
To access logs programmatically, append /api to the val's URL. The API supports the following query parameters:
search: Text to search for in logspage: Page number (default: 1)limit: Number of logs per page (default: 50)order: Sort order, eitherascordesc(default:desc)
Example API request:
https://your-val-url.val.run/api?search=error&page=1&limit=25&order=desc
API response format:
{ "rows": [ { "id": 123, "line": "Error occurred: TypeError: Cannot read property 'x' of undefined", "ts": "2023-06-15T14:32:45.123Z" }, // More log entries... ], "pagination": { "total": 42, "page": 1, "limit": 25, "pages": 2 } }
The logger uses SQLite for storage with a table structure that includes:
id: Unique identifier for each log entryline: The formatted log messagets: Timestamp when the log was created
To modify this logger:
- Update the table prefix in
logger.tsxif you want to create a new version with schema changes - Customize the UI styling in the CSS section of
main.tsx - Add additional search or filtering capabilities by modifying the
getLogsfunction
Feel free to use, modify, and share this logger for your Val Town projects.
