@orgloop/logger-file 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,52 @@
1
+ # @orgloop/logger-file
2
+
3
+ OrgLoop file logger -- buffered JSONL output with automatic rotation, compression, and cleanup. The default production logger.
4
+
5
+ ## Install
6
+
7
+ ```bash
8
+ npm install @orgloop/logger-file
9
+ ```
10
+
11
+ ## Configuration
12
+
13
+ ```yaml
14
+ loggers:
15
+ - name: file
16
+ type: "@orgloop/logger-file"
17
+ config:
18
+ path: "~/.orgloop/logs/orgloop.log" # Log file path
19
+ format: jsonl # Output format (jsonl only)
20
+ rotation:
21
+ max_size: "100MB" # Rotate when file exceeds this size
22
+ max_age: "7d" # Delete rotated files after this duration
23
+ max_files: 10 # Keep at most N rotated files
24
+ compress: true # Gzip rotated files
25
+ buffer:
26
+ size: 100 # Buffer N entries before flushing
27
+ flush_interval: "1s" # Flush at least this often
28
+ ```
29
+
30
+ All fields are optional and shown with their defaults.
31
+
32
+ ## Behavior
33
+
34
+ Log entries are written as newline-delimited JSON (JSONL). Each line is a complete `LogEntry` object:
35
+
36
+ ```json
37
+ {"phase":"deliver.success","event_id":"evt_abc123","trace_id":"trc_xyz","source":"github","target":"agent","timestamp":"2025-01-15T14:32:02.789Z","duration_ms":342}
38
+ ```
39
+
40
+ **Buffering:** Entries are buffered in memory and flushed when the buffer reaches `size` entries or every `flush_interval`, whichever comes first. The log file is created on init so `tail -f` works immediately.
41
+
42
+ **Rotation:** When the file exceeds `max_size`, it is renamed with a timestamp suffix (e.g., `orgloop.log.2025-01-15T14-32-02-789Z`) and optionally gzip-compressed. Old rotated files are cleaned up based on `max_files` and `max_age`.
43
+
44
+ **Path resolution:** Supports `~` expansion to the home directory. Relative paths resolve relative to the YAML config file.
45
+
46
+ ## Documentation
47
+
48
+ Full documentation at [orgloop.ai](https://orgloop.ai)
49
+
50
+ ## License
51
+
52
+ MIT
package/dist/rotation.js CHANGED
@@ -53,7 +53,7 @@ export async function needsRotation(filePath, maxSize) {
53
53
  export async function rotateFile(filePath, config) {
54
54
  const dir = dirname(filePath);
55
55
  const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
56
- const baseName = filePath.split('/').pop();
56
+ const baseName = filePath.split('/').pop() ?? 'log';
57
57
  const rotatedName = `${baseName}.${timestamp}`;
58
58
  const rotatedPath = join(dir, rotatedName);
59
59
  // Rename current → timestamped
@@ -1 +1 @@
1
- {"version":3,"file":"rotation.js","sourceRoot":"","sources":["../src/rotation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rotation.js","sourceRoot":"","sources":["../src/rotation.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@orgloop/logger-file",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "description": "OrgLoop file logger — JSONL with rotation",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",
8
8
  "dependencies": {
9
- "@orgloop/sdk": "0.1.0"
9
+ "@orgloop/sdk": "0.1.2"
10
10
  },
11
11
  "orgloop": {
12
12
  "type": "logger",