Update system-logs.tsx

This commit is contained in:
MacRimi
2025-10-18 10:11:43 +02:00
parent b50cb78fa6
commit d844c330e9

View File

@@ -121,7 +121,7 @@ export function SystemLogs() {
const [isMobileMenuOpen, setIsMobileMenuOpen] = useState(false) const [isMobileMenuOpen, setIsMobileMenuOpen] = useState(false)
const [dateFilter, setDateFilter] = useState("now") const [dateFilter, setDateFilter] = useState("30") // Changed from "now" to "30" to load all recent logs by default
const [customDays, setCustomDays] = useState("1") const [customDays, setCustomDays] = useState("1")
const getApiUrl = (endpoint: string) => { const getApiUrl = (endpoint: string) => {
@@ -132,54 +132,48 @@ export function SystemLogs() {
} }
useEffect(() => { useEffect(() => {
// Initial fetch might be redundant if dateFilter is not "now" anymore, but keeping for now
// if (dateFilter === "now") {
fetchAllData() fetchAllData()
// }
}, []) }, [])
useEffect(() => { useEffect(() => {
console.log("[v0] Date filter changed:", dateFilter, "Custom days:", customDays) console.log("[v0] Date filter changed:", dateFilter, "Custom days:", customDays)
if (dateFilter !== "now") { setLoading(true)
setLoading(true) fetchSystemLogs()
fetchSystemLogs() .then((newLogs) => {
.then((newLogs) => { console.log("[v0] Loaded logs for date filter:", dateFilter, "Count:", newLogs.length)
console.log("[v0] Loaded logs for date filter:", dateFilter, "Count:", newLogs.length) console.log("[v0] First log:", newLogs[0])
console.log("[v0] First log:", newLogs[0]) setLogs(newLogs)
setLogs(newLogs) setLoading(false)
setLoading(false) })
}) .catch((err) => {
.catch((err) => { console.error("[v0] Error loading logs:", err)
console.error("[v0] Error loading logs:", err) setLoading(false)
setLoading(false) })
})
} else {
fetchAllData()
}
}, [dateFilter, customDays]) }, [dateFilter, customDays])
useEffect(() => { useEffect(() => {
console.log("[v0] Level or service filter changed:", levelFilter, serviceFilter) console.log("[v0] Level or service filter changed:", levelFilter, serviceFilter)
if (levelFilter !== "all" || serviceFilter !== "all") { setLoading(true)
setLoading(true) fetchSystemLogs()
fetchSystemLogs() .then((newLogs) => {
.then((newLogs) => { console.log(
console.log( "[v0] Loaded logs for filters - Level:",
"[v0] Loaded logs for filters - Level:", levelFilter,
levelFilter, "Service:",
"Service:", serviceFilter,
serviceFilter, "Count:",
"Count:", newLogs.length,
newLogs.length, )
) setLogs(newLogs)
setLogs(newLogs) setLoading(false)
setLoading(false) })
}) .catch((err) => {
.catch((err) => { console.error("[v0] Error loading logs:", err)
console.error("[v0] Error loading logs:", err) setLoading(false)
setLoading(false) })
})
} else if (dateFilter === "now") {
// Only reload all data if we're on "now" and all filters are cleared
fetchAllData()
}
}, [levelFilter, serviceFilter]) }, [levelFilter, serviceFilter])
const fetchAllData = async () => { const fetchAllData = async () => {
@@ -223,11 +217,9 @@ export function SystemLogs() {
let apiUrl = getApiUrl("/api/logs") let apiUrl = getApiUrl("/api/logs")
const params = new URLSearchParams() const params = new URLSearchParams()
if (dateFilter !== "now") { const daysAgo = dateFilter === "custom" ? Number.parseInt(customDays) : Number.parseInt(dateFilter)
const daysAgo = dateFilter === "custom" ? Number.parseInt(customDays) : Number.parseInt(dateFilter) params.append("since_days", daysAgo.toString())
params.append("since_days", daysAgo.toString()) console.log("[v0] Fetching logs since_days:", daysAgo)
console.log("[v0] Fetching logs since_days:", daysAgo)
}
if (levelFilter !== "all") { if (levelFilter !== "all") {
const priorityMap: Record<string, string> = { const priorityMap: Record<string, string> = {
@@ -290,7 +282,7 @@ export function SystemLogs() {
try { try {
// Generate filename based on active filters // Generate filename based on active filters
const filters = [] const filters = []
if (dateFilter !== "now") { if (dateFilter !== "30") {
const days = dateFilter === "custom" ? customDays : dateFilter const days = dateFilter === "custom" ? customDays : dateFilter
filters.push(`${days}days`) filters.push(`${days}days`)
} }
@@ -313,7 +305,7 @@ export function SystemLogs() {
`Total Entries: ${filteredCombinedLogs.length.toLocaleString()}`, `Total Entries: ${filteredCombinedLogs.length.toLocaleString()}`,
``, ``,
`Filters Applied:`, `Filters Applied:`,
`- Date Range: ${dateFilter === "now" ? "Current logs" : dateFilter === "custom" ? `${customDays} days ago` : `${dateFilter} days ago`}`, `- Date Range: ${dateFilter === "custom" ? `${customDays} days ago` : `${dateFilter} days ago`}`,
`- Level: ${levelFilter === "all" ? "All Levels" : levelFilter}`, `- Level: ${levelFilter === "all" ? "All Levels" : levelFilter}`,
`- Service: ${serviceFilter === "all" ? "All Services" : serviceFilter}`, `- Service: ${serviceFilter === "all" ? "All Services" : serviceFilter}`,
`- Search: ${searchTerm || "None"}`, `- Search: ${searchTerm || "None"}`,
@@ -808,12 +800,12 @@ export function SystemLogs() {
<SelectValue placeholder="Time range" /> <SelectValue placeholder="Time range" />
</SelectTrigger> </SelectTrigger>
<SelectContent> <SelectContent>
<SelectItem value="now">Current logs</SelectItem>
<SelectItem value="1">1 day ago</SelectItem> <SelectItem value="1">1 day ago</SelectItem>
<SelectItem value="3">3 days ago</SelectItem> <SelectItem value="3">3 days ago</SelectItem>
<SelectItem value="7">1 week ago</SelectItem> <SelectItem value="7">1 week ago</SelectItem>
<SelectItem value="14">2 weeks ago</SelectItem> <SelectItem value="14">2 weeks ago</SelectItem>
<SelectItem value="30">1 month ago</SelectItem> <SelectItem value="30">1 month ago</SelectItem>
<SelectItem value="90">3 months ago</SelectItem>
<SelectItem value="custom">Custom days</SelectItem> <SelectItem value="custom">Custom days</SelectItem>
</SelectContent> </SelectContent>
</Select> </Select>
@@ -891,11 +883,13 @@ export function SystemLogs() {
</div> </div>
<div className="flex-1 min-w-0 overflow-hidden"> <div className="flex-1 min-w-0 overflow-hidden">
<div className="flex items-center justify-between mb-1 gap-2"> <div className="flex flex-col gap-1 mb-1">
<div className="text-sm font-medium text-foreground truncate">{log.service}</div> <div className="flex items-center justify-between gap-2">
<div className="text-xs text-muted-foreground font-mono whitespace-nowrap ml-2 flex-shrink-0"> <div className="text-sm font-medium text-foreground truncate flex-1 min-w-0">
{log.timestamp} {log.service}
</div>
</div> </div>
<div className="text-xs text-muted-foreground font-mono truncate">{log.timestamp}</div>
</div> </div>
<div className="text-sm text-foreground mb-1 line-clamp-2 break-words overflow-hidden"> <div className="text-sm text-foreground mb-1 line-clamp-2 break-words overflow-hidden">
{log.message} {log.message}