fb9e5dcd10
console.log wird global stummgeschaltet wenn aus — spart adb-logcat- Speicher wenn alles laeuft. console.warn/error bleiben immer aktiv. Default an. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
42 lines
1.3 KiB
TypeScript
42 lines
1.3 KiB
TypeScript
/**
|
|
* Verbose-Logging-Toggle: console.log laesst sich global stummschalten.
|
|
* console.warn/console.error bleiben immer an — Fehler will man immer sehen.
|
|
*
|
|
* Default: an (true). Toggle ueber Settings → Protokoll → Verbose Logging.
|
|
* Beim Start wird der gespeicherte Wert geladen, vorher loggen wir normal.
|
|
*/
|
|
|
|
import AsyncStorage from '@react-native-async-storage/async-storage';
|
|
|
|
export const VERBOSE_LOGGING_KEY = 'aria_verbose_logging';
|
|
|
|
// Original-console.log retten, damit wir die Wrapper jederzeit wieder
|
|
// "scharf" stellen koennen (sonst waere ein Toggle-an nach -aus tot).
|
|
const originalLog = console.log.bind(console);
|
|
const noop = () => {};
|
|
|
|
let _verbose = true;
|
|
|
|
function applyState(): void {
|
|
console.log = _verbose ? originalLog : noop;
|
|
}
|
|
|
|
/** Wert aus AsyncStorage laden und anwenden. Beim App-Start aufrufen. */
|
|
export async function initLogger(): Promise<void> {
|
|
try {
|
|
const v = await AsyncStorage.getItem(VERBOSE_LOGGING_KEY);
|
|
_verbose = v !== 'false'; // default: true
|
|
} catch {}
|
|
applyState();
|
|
}
|
|
|
|
export function isVerboseLogging(): boolean {
|
|
return _verbose;
|
|
}
|
|
|
|
export function setVerboseLogging(verbose: boolean): void {
|
|
_verbose = verbose;
|
|
applyState();
|
|
AsyncStorage.setItem(VERBOSE_LOGGING_KEY, String(verbose)).catch(() => {});
|
|
}
|