move logs into subdir
This commit is contained in:
4
.gitignore
vendored
4
.gitignore
vendored
@@ -21,3 +21,7 @@ target
|
|||||||
# and can be added to the global gitignore or merged into this file. For a more nuclear
|
# and can be added to the global gitignore or merged into this file. For a more nuclear
|
||||||
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
|
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
|
||||||
#.idea/
|
#.idea/
|
||||||
|
|
||||||
|
# Session logs directory
|
||||||
|
logs/
|
||||||
|
*.json
|
||||||
|
|||||||
@@ -107,6 +107,15 @@ cargo run
|
|||||||
g3 "implement a function to calculate fibonacci numbers"
|
g3 "implement a function to calculate fibonacci numbers"
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Session Logs
|
||||||
|
|
||||||
|
G3 automatically saves session logs for each interaction in the `logs/` directory. These logs contain:
|
||||||
|
- Complete conversation history
|
||||||
|
- Token usage statistics
|
||||||
|
- Timestamps and session status
|
||||||
|
|
||||||
|
The `logs/` directory is created automatically on first use and is excluded from version control.
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
MIT License - see LICENSE file for details
|
MIT License - see LICENSE file for details
|
||||||
|
|||||||
@@ -789,11 +789,20 @@ The tool will execute immediately and you'll receive the result (success or erro
|
|||||||
.unwrap_or_default()
|
.unwrap_or_default()
|
||||||
.as_secs();
|
.as_secs();
|
||||||
|
|
||||||
|
// Create logs directory if it doesn't exist
|
||||||
|
let logs_dir = std::path::Path::new("logs");
|
||||||
|
if !logs_dir.exists() {
|
||||||
|
if let Err(e) = std::fs::create_dir_all(logs_dir) {
|
||||||
|
error!("Failed to create logs directory: {}", e);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Use session-based filename if we have a session ID, otherwise fall back to timestamp
|
// Use session-based filename if we have a session ID, otherwise fall back to timestamp
|
||||||
let filename = if let Some(ref session_id) = self.session_id {
|
let filename = if let Some(ref session_id) = self.session_id {
|
||||||
format!("g3_session_{}.json", session_id)
|
format!("logs/g3_session_{}.json", session_id)
|
||||||
} else {
|
} else {
|
||||||
format!("g3_context_{}.json", timestamp)
|
format!("logs/g3_context_{}.json", timestamp)
|
||||||
};
|
};
|
||||||
|
|
||||||
let context_data = serde_json::json!({
|
let context_data = serde_json::json!({
|
||||||
|
|||||||
Reference in New Issue
Block a user