diff --git a/src/lib/logger/config.js b/src/lib/logger/config.js
index dc41ae8..2ed904d 100644
--- a/src/lib/logger/config.js
+++ b/src/lib/logger/config.js
@@ -31,3 +31,12 @@ export const LOG_LEVEL_PRIORITY = {
[LOG_LEVELS.WARN]: 2,
[LOG_LEVELS.ERROR]: 3,
};
+
+// Function to update the minimum log level
+export const setMinLogLevel = (level) => {
+ if (LOG_LEVELS[level] || Object.values(LOG_LEVELS).includes(level)) {
+ config.minLevel = level;
+ return true;
+ }
+ return false;
+};
diff --git a/src/lib/logger/index.js b/src/lib/logger/index.js
index 6617469..4546597 100644
--- a/src/lib/logger/index.js
+++ b/src/lib/logger/index.js
@@ -93,4 +93,4 @@ export const logger = new Logger();
export const createLogger = (scopes) => logger.withScopes(scopes);
// Export types and config for external use
-export { LOG_LEVELS } from "./config";
+export { LOG_LEVELS, setMinLogLevel } from "./config";
diff --git a/src/scenes/Developer/index.js b/src/scenes/Developer/index.js
index 1737f87..992d57f 100644
--- a/src/scenes/Developer/index.js
+++ b/src/scenes/Developer/index.js
@@ -9,6 +9,7 @@ import {
Text,
useTheme,
Divider,
+ RadioButton,
} from "react-native-paper";
import { createStyles } from "~/theme";
import env, { setStaging } from "~/env";
@@ -18,6 +19,8 @@ import {
toggleEmulatorMode as toggleEmulatorModeService,
initEmulatorMode,
} from "~/location/emulatorService";
+import { LOG_LEVELS, setMinLogLevel } from "~/lib/logger";
+import { config as loggerConfig } from "~/lib/logger/config";
const reset = async () => {
await authActions.logout();
@@ -40,16 +43,26 @@ export default function Developer() {
const [emulatorMode, setEmulatorMode] = useState(false);
const [syncStatus, setSyncStatus] = useState(null); // null, 'syncing', 'success', 'error'
const [syncResult, setSyncResult] = useState("");
+ const [logLevel, setLogLevel] = useState(LOG_LEVELS.DEBUG);
- // Initialize emulator mode when component mounts
+ // Initialize emulator mode and log level when component mounts
useEffect(() => {
// Initialize the emulator service
initEmulatorMode();
// Set the initial state based on the global service
setEmulatorMode(getEmulatorModeState());
+
+ // Set the initial log level from config
+ setLogLevel(loggerConfig.minLevel);
}, []);
+ // Handle log level change
+ const handleLogLevelChange = (level) => {
+ setLogLevel(level);
+ setMinLogLevel(level);
+ };
+
// Handle toggling emulator mode
const handleEmulatorModeToggle = async (enabled) => {
const newState = await toggleEmulatorModeService(enabled);
@@ -159,6 +172,33 @@ export default function Developer() {
+
+
+ Log Level
+
+
+
+
+ DEBUG
+
+
+
+ INFO
+
+
+
+ WARN
+
+
+
+ ERROR
+
+
+
+
@@ -339,4 +379,12 @@ const useStyles = createStyles(({ wp, hp, scaleText, theme: { colors } }) => ({
flex: 1,
flexWrap: "wrap",
},
+ radioRow: {
+ flexDirection: "row",
+ alignItems: "center",
+ marginVertical: 2,
+ },
+ sectionLabel: {
+ marginBottom: 8,
+ },
}));