From a2a8e4ae3f12d14fd18ee0b99738eff6f4f90bd2 Mon Sep 17 00:00:00 2001 From: hsiegeln <37154749+hsiegeln@users.noreply.github.com> Date: Thu, 26 Mar 2026 23:36:31 +0100 Subject: [PATCH] feat: rename logForwardingLevel to applicationLogLevel, add agentLogLevel MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Align with cameleer3-common rename: logForwardingLevel → applicationLogLevel (root logger) and new agentLogLevel (com.cameleer3 logger). Both fields are on ApplicationConfig, pushed via config-update. UI shows "App Log Level" and "Agent Log Level" on AppConfig slide-in, AgentHealth config bar, and AppConfigDetailPage. Co-Authored-By: Claude Opus 4.6 (1M context) --- .../ApplicationConfigController.java | 3 +- ui/src/api/queries/commands.ts | 3 +- ui/src/pages/Admin/AppConfigDetailPage.tsx | 29 ++++++++++--- ui/src/pages/Admin/AppConfigPage.tsx | 21 +++++++--- ui/src/pages/AgentHealth/AgentHealth.tsx | 41 ++++++++++++++----- 5 files changed, 73 insertions(+), 24 deletions(-) diff --git a/cameleer3-server-app/src/main/java/com/cameleer3/server/app/controller/ApplicationConfigController.java b/cameleer3-server-app/src/main/java/com/cameleer3/server/app/controller/ApplicationConfigController.java index 09e50110..aadd487b 100644 --- a/cameleer3-server-app/src/main/java/com/cameleer3/server/app/controller/ApplicationConfigController.java +++ b/cameleer3-server-app/src/main/java/com/cameleer3/server/app/controller/ApplicationConfigController.java @@ -199,7 +199,8 @@ public class ApplicationConfigController { config.setMetricsEnabled(true); config.setSamplingRate(1.0); config.setTracedProcessors(Map.of()); - config.setLogForwardingLevel("INFO"); + config.setApplicationLogLevel("INFO"); + config.setAgentLogLevel("INFO"); config.setEngineLevel("REGULAR"); config.setPayloadCaptureMode("NONE"); return config; diff --git a/ui/src/api/queries/commands.ts b/ui/src/api/queries/commands.ts index e1328a29..e1cdde30 100644 --- a/ui/src/api/queries/commands.ts +++ b/ui/src/api/queries/commands.ts @@ -22,7 +22,8 @@ export interface ApplicationConfig { updatedAt?: string engineLevel?: string payloadCaptureMode?: string - logForwardingLevel?: string + applicationLogLevel?: string + agentLogLevel?: string metricsEnabled: boolean samplingRate: number tracedProcessors: Record diff --git a/ui/src/pages/Admin/AppConfigDetailPage.tsx b/ui/src/pages/Admin/AppConfigDetailPage.tsx index 19ca7337..137d2733 100644 --- a/ui/src/pages/Admin/AppConfigDetailPage.tsx +++ b/ui/src/pages/Admin/AppConfigDetailPage.tsx @@ -91,7 +91,8 @@ export default function AppConfigDetailPage() { useEffect(() => { if (config) { setForm({ - logForwardingLevel: config.logForwardingLevel ?? 'INFO', + applicationLogLevel: config.applicationLogLevel ?? 'INFO', + agentLogLevel: config.agentLogLevel ?? 'INFO', engineLevel: config.engineLevel ?? 'REGULAR', payloadCaptureMode: config.payloadCaptureMode ?? 'NONE', metricsEnabled: config.metricsEnabled, @@ -106,7 +107,8 @@ export default function AppConfigDetailPage() { function startEditing() { if (!config) return; setForm({ - logForwardingLevel: config.logForwardingLevel ?? 'INFO', + applicationLogLevel: config.applicationLogLevel ?? 'INFO', + agentLogLevel: config.agentLogLevel ?? 'INFO', engineLevel: config.engineLevel ?? 'REGULAR', payloadCaptureMode: config.payloadCaptureMode ?? 'NONE', metricsEnabled: config.metricsEnabled, @@ -327,10 +329,10 @@ export default function AppConfigDetailPage() { Settings
- + {editing ? ( - updateField('applicationLogLevel', e.target.value)}> @@ -338,7 +340,22 @@ export default function AppConfigDetailPage() { ) : ( - + + )} +
+
+ + {editing ? ( + + ) : ( + )}
diff --git a/ui/src/pages/Admin/AppConfigPage.tsx b/ui/src/pages/Admin/AppConfigPage.tsx index 83654a0e..351a2ec2 100644 --- a/ui/src/pages/Admin/AppConfigPage.tsx +++ b/ui/src/pages/Admin/AppConfigPage.tsx @@ -54,7 +54,8 @@ function captureColor(mode: string): BadgeColor { function buildColumns(): Column[] { return [ { key: 'application', header: 'Application', sortable: true, render: (_v, row) => {row.application} }, - { key: 'logForwardingLevel', header: 'Log Level', render: (_v, row) => { const val = row.logForwardingLevel ?? 'INFO'; return ; } }, + { key: 'applicationLogLevel', header: 'App Log', render: (_v, row) => { const val = row.applicationLogLevel ?? 'INFO'; return ; } }, + { key: 'agentLogLevel', header: 'Agent Log', render: (_v, row) => { const val = row.agentLogLevel ?? 'INFO'; return ; } }, { key: 'engineLevel', header: 'Engine Level', render: (_v, row) => { const val = row.engineLevel ?? 'REGULAR'; return ; } }, { key: 'payloadCaptureMode', header: 'Payload Capture', render: (_v, row) => { const val = row.payloadCaptureMode ?? 'NONE'; return ; } }, { key: 'metricsEnabled', header: 'Metrics', width: '80px', render: (_v, row) => }, @@ -91,7 +92,8 @@ function AppConfigDetail({ appId, onClose }: { appId: string; onClose: () => voi useEffect(() => { if (config) { setForm({ - logForwardingLevel: config.logForwardingLevel ?? 'INFO', + applicationLogLevel: config.applicationLogLevel ?? 'INFO', + agentLogLevel: config.agentLogLevel ?? 'INFO', engineLevel: config.engineLevel ?? 'REGULAR', payloadCaptureMode: config.payloadCaptureMode ?? 'NONE', metricsEnabled: config.metricsEnabled, @@ -106,7 +108,8 @@ function AppConfigDetail({ appId, onClose }: { appId: string; onClose: () => voi function startEditing() { if (!config) return; setForm({ - logForwardingLevel: config.logForwardingLevel ?? 'INFO', + applicationLogLevel: config.applicationLogLevel ?? 'INFO', + agentLogLevel: config.agentLogLevel ?? 'INFO', engineLevel: config.engineLevel ?? 'REGULAR', payloadCaptureMode: config.payloadCaptureMode ?? 'NONE', metricsEnabled: config.metricsEnabled, @@ -239,10 +242,16 @@ function AppConfigDetail({ appId, onClose }: { appId: string; onClose: () => voi
Settings
- Log Forwarding + App Log Level {editing - ? - : } + ? + : } +
+
+ Agent Log Level + {editing + ? + : }
Engine Level diff --git a/ui/src/pages/AgentHealth/AgentHealth.tsx b/ui/src/pages/AgentHealth/AgentHealth.tsx index 714c3db0..ff7f00cb 100644 --- a/ui/src/pages/AgentHealth/AgentHealth.tsx +++ b/ui/src/pages/AgentHealth/AgentHealth.tsx @@ -255,7 +255,8 @@ export default function AgentHealth() { const startConfigEdit = useCallback(() => { if (!appConfig) return; setConfigDraft({ - logForwardingLevel: appConfig.logForwardingLevel ?? 'INFO', + applicationLogLevel: appConfig.applicationLogLevel ?? 'INFO', + agentLogLevel: appConfig.agentLogLevel ?? 'INFO', engineLevel: appConfig.engineLevel ?? 'REGULAR', payloadCaptureMode: appConfig.payloadCaptureMode ?? 'NONE', metricsEnabled: appConfig.metricsEnabled, @@ -530,9 +531,20 @@ export default function AgentHealth() { {configEditing ? ( <>
- Log Level - setConfigDraft(d => ({ ...d, applicationLogLevel: e.target.value }))}> + + + + + + +
+
+ Agent Log Level +