{"id":21588799,"url":"https://github.com/ashutosh7i/night-owl","last_synced_at":"2026-02-20T21:05:03.189Z","repository":{"id":261708415,"uuid":"883539059","full_name":"ashutosh7i/night-owl","owner":"ashutosh7i","description":"Night Owl 🦉 is a versatile, tag-based logging system designed to be simple, fast, and platform-independent.it allows developers to define custom tags and easily send logs to a server for later retrieval based on these tags.","archived":false,"fork":false,"pushed_at":"2024-11-08T00:39:29.000Z","size":16,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-11-27T09:20:43.153Z","etag":null,"topics":["cpp","logging","sqlite"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ashutosh7i.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-11-05T06:24:49.000Z","updated_at":"2024-11-08T00:39:33.000Z","dependencies_parsed_at":null,"dependency_job_id":"572f80ac-2065-4207-9ac4-fe5e370c772f","html_url":"https://github.com/ashutosh7i/night-owl","commit_stats":null,"previous_names":["ashutosh7i/night-owl"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ashutosh7i/night-owl","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ashutosh7i%2Fnight-owl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ashutosh7i%2Fnight-owl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ashutosh7i%2Fnight-owl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ashutosh7i%2Fnight-owl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ashutosh7i","download_url":"https://codeload.github.com/ashutosh7i/night-owl/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ashutosh7i%2Fnight-owl/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29664500,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-20T19:49:36.704Z","status":"ssl_error","status_checked_at":"2026-02-20T19:44:05.372Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cpp","logging","sqlite"],"created_at":"2024-11-24T16:11:14.754Z","updated_at":"2026-02-20T21:05:03.165Z","avatar_url":"https://github.com/ashutosh7i.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Night Owl 🦉\n\nA versatile, tag-based logging system designed for cross-platform applications. Night Owl provides a straightforward way to collect, store, and retrieve logs with custom tags, built with performance and simplicity in mind.\n\n## 🎯 The Problem\n\nWhile developing applications across multiple platforms, I needed a straightforward, efficient logging service that could collect logs with tags from various sources. Existing solutions like Sentry and Datadog were either not suitable for simple log lookup, too expensive, or overly complex for my needs.\n\n## 💡 The Solution\n\nNight Owl 🦉 is a versatile, tag-based logging system designed to be simple, fast, and platform-independent. Built with rust and SQLite at its core, it allows developers to define custom tags and easily send logs to a server for later retrieval based on these tags.\n\n## ✨ Key Features\n\n- 🏷️ Custom tag definition\n- 📝 Two components for each log entry: message and data\n- 📌 Support for predefined tags like User, System, Other\n- 🔄 Fallback type for unknown tags\n- ⚡ Fast and efficient rust core implementation\n- 💾 SQLite database for robust storage and quick retrieval\n- 🐳 Docker image for easy deployment\n- 📦 SDKs for multiple platforms (Flutter, JavaScript)\n- 🔌 Extensibility to support most programming language\n\n## 🚀 How It Works\n\n1. Deploy Night Owl using the provided Docker image\n2. Define your tags in a configuration file\n3. Send logs from your application using the platform-specific SDK\n4. Logs are stored in the SQLite database with their associated tags\n5. Retrieve logs later using tag-based queries\n\n## 📝 Example Usage\n\n### Sending Logs\n\n```javascript\n// Sending a log with user tag\nNightOwl.log(\"User\", \"user registered\", {\n  \"userId\": \"12345\",\n  \"email\": \"user@example.com\"\n});\n\n// Sending a log with system tag\nNightOwl.log(\"System\", \"Application startup\", {\n  \"version\": \"1.0.0\",\n  \"buildNumber\": \"42\"\n});\n```\n\n### Retrieving Logs\n\n```javascript\n// Get all logs with a specific tag\nconst userLogs = await NightOwl.getLogs(\"User\");\n\n// Get logs within a time range\nconst recentLogs = await NightOwl.getLogs(\n  \"System\",\n  {\n    startTime: new Date(Date.now() - 24 * 60 * 60 * 1000),\n    endTime: new Date()\n  }\n);\n\n// Search logs with specific criteria\nconst filteredLogs = await NightOwl.searchLogs({\n  tags: [\"User\", \"System\"],\n  query: \"error\",\n  limit: 100\n});\n```\n\n## ⚙️ Custom Tag Configuration\n\nCreate a `log_config.json` file in your project:\n\n```json\n{\n  \"tags\": {\n    \"User\": {\n      \"retention\": \"30d\",\n      \"priority\": \"normal\"\n    },\n    \"System\": {\n      \"retention\": \"90d\",\n      \"priority\": \"high\"\n    },\n    \"Debug\": {\n      \"retention\": \"7d\",\n      \"priority\": \"low\"\n    }\n  }\n}\n```\n\n## 🏗️ Architecture\n\nNight Owl consists of three main components:\n\n1. **Core Engine (rust)**\n   - Handles log processing and storage\n   - Optimized for performance\n   - Platform-independent implementation\n\n2. **SQLite Database**\n   - Manages persistent storage\n   - Efficient query execution\n   - Robust data integrity\n\n3. **Platform SDKs**\n   - Native implementations for each platform\n   - Consistent API across languages\n   - Optimized for each environment\n\n## 🔍 API Reference\n\n| Method | Description |\n|--------|-------------|\n| `log(String tag, String message, Object data)` | Logs a new entry |\n| `getLogs(String tag, Options options)` | Retrieves logs by tag |\n| `searchLogs(SearchOptions options)` | Searches logs with criteria |\n\n## 🎯 Getting Started\n\nComing soon...\n\n## 📦 Available SDKs\n\n- Flutter: [Link to Flutter package] soon\n- JavaScript: [Link to npm package] soon\n- Python: Coming soon\n- Java: Coming soon\n- Go: Coming soon\n\n## 📄 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n---\n\nMade with ❤️ \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fashutosh7i%2Fnight-owl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fashutosh7i%2Fnight-owl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fashutosh7i%2Fnight-owl/lists"}