79 lines
2.9 KiB
Text
79 lines
2.9 KiB
Text
// === Verbose Logger - Simple Debug Toggle Controller ===
|
|
// Provides system-wide verbose logging toggle functionality
|
|
// Scripts use their own VERBOSE_LOGGING flags, this just coordinates the toggle
|
|
|
|
// Verbose logging control
|
|
integer VERBOSE_LOGGING = FALSE;
|
|
|
|
// Loop protection - prevent rapid toggle spam
|
|
float lastToggleTime = 0.0;
|
|
#define TOGGLE_COOLDOWN 2.0 // Minimum 2 seconds between toggles
|
|
|
|
// Message constants for verbose logging system
|
|
#define MSG_VERBOSE_TOGGLE 9010 // Toggle verbose logging on/off
|
|
#define MSG_VERBOSE_BROADCAST 9011 // Broadcast logging state to all modules
|
|
|
|
// Report memory status of this script
|
|
reportMemoryStatus() {
|
|
if (VERBOSE_LOGGING) {
|
|
integer free = llGetFreeMemory();
|
|
integer used = llGetUsedMemory();
|
|
llOwnerSay("🔍 [Verbose Logger] Memory - Free: " + (string)free + " Used: " + (string)used);
|
|
}
|
|
}
|
|
|
|
default {
|
|
state_entry() {
|
|
llOwnerSay("🔍 Verbose Logger initialized - ready to handle debug toggle");
|
|
}
|
|
|
|
on_rez(integer start_param) {
|
|
llOwnerSay("🔍 Verbose Logger rezzed - debug system ready");
|
|
VERBOSE_LOGGING = FALSE; // Default to off after rez
|
|
}
|
|
|
|
link_message(integer sender, integer num, string str, key id) {
|
|
// Handle verbose logging toggle - FIXED to prevent loops
|
|
if (num == MSG_VERBOSE_TOGGLE && str == "TOGGLE_VERBOSE_LOGS") {
|
|
// Only respond if sender is NOT the Main Controller (prevent forwarding loop)
|
|
if (sender == 1) {
|
|
// This came from Main Controller forwarding - ignore to prevent loop
|
|
return;
|
|
}
|
|
|
|
// Loop protection - prevent rapid toggle spam
|
|
float currentTime = llGetTime();
|
|
if (currentTime - lastToggleTime < TOGGLE_COOLDOWN) {
|
|
return; // Silent ignore during cooldown
|
|
}
|
|
lastToggleTime = currentTime;
|
|
|
|
VERBOSE_LOGGING = !VERBOSE_LOGGING;
|
|
|
|
string status = "OFF";
|
|
if (VERBOSE_LOGGING) {
|
|
status = "ON";
|
|
llOwnerSay("🔍 [Verbose Logger] Debug logging: ENABLED");
|
|
} else {
|
|
llOwnerSay("🔍 [Verbose Logger] Debug logging: DISABLED");
|
|
}
|
|
|
|
// Public announcement
|
|
llSay(0, "🔍 Verbose logging system-wide: " + status);
|
|
|
|
// Broadcast the new setting to all modules
|
|
llMessageLinked(LINK_SET, MSG_VERBOSE_BROADCAST, "VERBOSE_LOGGING|" + (string)VERBOSE_LOGGING, id);
|
|
return;
|
|
}
|
|
|
|
// Handle verbose logging broadcast from other scripts
|
|
if (num == MSG_VERBOSE_BROADCAST) {
|
|
list parts = llParseString2List(str, ["|"], []);
|
|
if (llList2String(parts, 0) == "VERBOSE_LOGGING") {
|
|
VERBOSE_LOGGING = llList2Integer(parts, 1);
|
|
return;
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|