33 changed files with 421 additions and 202 deletions
@ -0,0 +1,117 @@ |
|||||
|
# Logging Configuration Guide |
||||
|
|
||||
|
## Overview |
||||
|
|
||||
|
TimeSafari now supports configurable logging levels via the `VITE_LOG_LEVEL` environment variable. This allows developers to control the verbosity of console output without modifying code. |
||||
|
|
||||
|
## Available Log Levels |
||||
|
|
||||
|
| Level | Value | Description | Console Output | |
||||
|
|-------|-------|-------------|----------------| |
||||
|
| `error` | 0 | Errors only | Critical errors only | |
||||
|
| `warn` | 1 | Warnings and errors | Warnings and errors | |
||||
|
| `info` | 2 | Info, warnings, and errors | General information, warnings, and errors | |
||||
|
| `debug` | 3 | All log levels | Verbose debugging information | |
||||
|
|
||||
|
## Environment Variable |
||||
|
|
||||
|
Set the `VITE_LOG_LEVEL` environment variable to control logging: |
||||
|
|
||||
|
```bash |
||||
|
# Show only errors |
||||
|
VITE_LOG_LEVEL=error |
||||
|
|
||||
|
# Show warnings and errors (default for production web) |
||||
|
VITE_LOG_LEVEL=warn |
||||
|
|
||||
|
# Show info, warnings, and errors (default for development/capacitor) |
||||
|
VITE_LOG_LEVEL=info |
||||
|
|
||||
|
# Show all log levels including debug |
||||
|
VITE_LOG_LEVEL=debug |
||||
|
``` |
||||
|
|
||||
|
## Default Behavior by Platform |
||||
|
|
||||
|
The logger automatically selects appropriate default log levels based on your platform and environment: |
||||
|
|
||||
|
- **Production Web**: `warn` (warnings and errors only) |
||||
|
- **Electron**: `error` (errors only - very quiet) |
||||
|
- **Development/Capacitor**: `info` (info and above) |
||||
|
|
||||
|
## Usage Examples |
||||
|
|
||||
|
### Setting Log Level in Development |
||||
|
|
||||
|
```bash |
||||
|
# In your terminal before running the app |
||||
|
export VITE_LOG_LEVEL=debug |
||||
|
npm run dev |
||||
|
|
||||
|
# Or inline |
||||
|
VITE_LOG_LEVEL=debug npm run dev |
||||
|
``` |
||||
|
|
||||
|
### Setting Log Level in Production |
||||
|
|
||||
|
```bash |
||||
|
# For verbose production logging |
||||
|
VITE_LOG_LEVEL=info npm run build:web |
||||
|
|
||||
|
# For minimal production logging |
||||
|
VITE_LOG_LEVEL=warn npm run build:web |
||||
|
``` |
||||
|
|
||||
|
### Programmatic Access |
||||
|
|
||||
|
The logger provides methods to check current configuration: |
||||
|
|
||||
|
```typescript |
||||
|
import { logger } from '@/utils/logger'; |
||||
|
|
||||
|
// Get current log level |
||||
|
const currentLevel = logger.getCurrentLevel(); // 'info' |
||||
|
|
||||
|
// Check if a level is enabled |
||||
|
const debugEnabled = logger.isLevelEnabled('debug'); // false if level < debug |
||||
|
|
||||
|
// Get available levels |
||||
|
const levels = logger.getAvailableLevels(); // ['error', 'warn', 'info', 'debug'] |
||||
|
``` |
||||
|
|
||||
|
## Database Logging |
||||
|
|
||||
|
Database logging continues to work regardless of console log level settings. All log messages are still stored in the database for debugging and audit purposes. |
||||
|
|
||||
|
## Migration Notes |
||||
|
|
||||
|
- **Existing code**: No changes required - logging behavior remains the same |
||||
|
- **New feature**: Use `VITE_LOG_LEVEL` to override default behavior |
||||
|
- **Backward compatible**: All existing logging calls work as before |
||||
|
|
||||
|
## Best Practices |
||||
|
|
||||
|
1. **Development**: Use `VITE_LOG_LEVEL=debug` for maximum visibility |
||||
|
2. **Testing**: Use `VITE_LOG_LEVEL=info` for balanced output |
||||
|
3. **Production**: Use `VITE_LOG_LEVEL=warn` for minimal noise |
||||
|
4. **Debugging**: Temporarily set `VITE_LOG_LEVEL=debug` to troubleshoot issues |
||||
|
|
||||
|
## Troubleshooting |
||||
|
|
||||
|
### No Logs Appearing |
||||
|
|
||||
|
Check your `VITE_LOG_LEVEL` setting: |
||||
|
```bash |
||||
|
echo $VITE_LOG_LEVEL |
||||
|
``` |
||||
|
|
||||
|
### Too Many Logs |
||||
|
|
||||
|
Reduce verbosity by setting a lower log level: |
||||
|
```bash |
||||
|
VITE_LOG_LEVEL=warn |
||||
|
``` |
||||
|
|
||||
|
### Platform-Specific Issues |
||||
|
|
||||
|
Remember that Electron is very quiet by default. Use `VITE_LOG_LEVEL=info` to see more output in Electron builds. |
Loading…
Reference in new issue