22 changed files with 342 additions and 154 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