From d7966ced095543f828cf55bc6fbcf890e75d9d4d Mon Sep 17 00:00:00 2001 From: Bjorn Neergaard Date: Tue, 10 Apr 2018 16:01:31 -0600 Subject: [PATCH] Use a rust DLL for logging (#36858) By moving our logging to a DLL we see a drop in CPU/real time of 2-3 orders of magnitude. This is due to BYOND opening and closing file handles on every write, causing incredible amounts of unneeded overhead. The logging library also handles timestamps for us, further increasing performance gains. This library will also allow for further offloading in the future, such as completely replacing file2text() and friends. A pre-compiled DLL is bundled, but Linux users will have to compile manually. Directions can be found at the rust-g repo. Log output is enhanced with millisecond time stamps: [2018-04-01 15:56:23.522] blah blah blah This includes runtimes as well, which benefit from the same timestamp improvements and no longer have hacky splitting code to add their own timestamps. Log shutdown is handled in a dedicated proc called as late as possible, as rust-g integration expands this will be factored out into a generic native code shutdown proc. --- .travis.yml | 7 +- README.md | 5 + TGS3.json | 5 +- code/__HELPERS/_logging.dm | 132 +++++++++++------- code/_globalvars/logging.dm | 6 +- .../configuration/configuration.dm | 2 +- code/game/objects/structures/morgue.dm | 4 +- code/game/world.dm | 47 ++++--- code/modules/admin/admin_verbs.dm | 6 +- code/modules/admin/verbs/getlogs.dm | 62 +------- code/modules/client/client_procs.dm | 2 +- code/modules/error_handler/error_handler.dm | 27 +--- rust_g.dll | Bin 0 -> 175104 bytes tools/travis/build_dependencies.sh | 16 +++ 14 files changed, 157 insertions(+), 164 deletions(-) create mode 100644 rust_g.dll create mode 100755 tools/travis/build_dependencies.sh diff --git a/.travis.yml b/.travis.yml index 6c9841d87bb..60a2a7e7b44 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,6 +8,7 @@ env: - BYOND_MAJOR="512" - BYOND_MINOR="1418" - NODE_VERSION="4" + - RUST_G_VERSION="0.2.0" - BUILD_TOOLS=false - BUILD_TESTING=false - DM_MAPFILE="loadallmaps" @@ -18,8 +19,10 @@ env: cache: directories: - - tgui/node_modules - $HOME/BYOND-${BYOND_MAJOR}.${BYOND_MINOR} + - tgui/node_modules + - $HOME/.rustup + - $HOME/.cargo addons: @@ -28,6 +31,7 @@ addons: - libc6-i386 - libgcc1:i386 - libstdc++6:i386 + - gcc-multilib - python3 - python3-pip @@ -41,5 +45,6 @@ before_script: script: - tools/travis/check_filedirs.sh tgstation.dme - tools/travis/build_tools.sh + - tools/travis/build_dependencies.sh - tools/travis/build_byond.sh diff --git a/README.md b/README.md index c8ede1a3d45..0b1baf0841d 100644 --- a/README.md +++ b/README.md @@ -64,6 +64,11 @@ byondkey = Rank where the admin rank must be properly capitalised. +This codebase also depends on a native library called rust-g. A precompiled +Windows DLL is included in this repository, but Linux users will need to build +and install it themselves. Directions can be found at the [rust-g +repo](https://github.com/tgstation13/rust-g). + Finally, to start the server, run Dream Daemon and enter the path to your compiled tgstation.dmb file. Make sure to set the port to the one you specified in the config.txt, and set the Security box to 'Safe'. Then press GO diff --git a/TGS3.json b/TGS3.json index d6dc6c9d9ef..9b7aef9599c 100644 --- a/TGS3.json +++ b/TGS3.json @@ -17,6 +17,7 @@ "data" ], "dlls": [ - "libmariadb.dll" + "libmariadb.dll", + "rust_g.dll" ] - } \ No newline at end of file + } diff --git a/code/__HELPERS/_logging.dm b/code/__HELPERS/_logging.dm index 18dd85fa5bb..6585aebd36a 100644 --- a/code/__HELPERS/_logging.dm +++ b/code/__HELPERS/_logging.dm @@ -1,9 +1,13 @@ +//location of the rust-g library +#define RUST_G "rust_g" + //wrapper macros for easier grepping #define DIRECT_OUTPUT(A, B) A << B #define SEND_IMAGE(target, image) DIRECT_OUTPUT(target, image) #define SEND_SOUND(target, sound) DIRECT_OUTPUT(target, sound) #define SEND_TEXT(target, text) DIRECT_OUTPUT(target, text) #define WRITE_FILE(file, text) DIRECT_OUTPUT(file, text) +#define WRITE_LOG(log, text) call(RUST_G, "log_write")(log, text) //print a warning message to world.log #define WARNING(MSG) warning("[MSG] in [__FILE__] at line [__LINE__] src: [src] usr: [usr].") @@ -26,99 +30,129 @@ #ifdef UNIT_TESTS /proc/log_test(text) - WRITE_FILE(GLOB.test_log, "\[[time_stamp()]]: [text]") + WRITE_LOG(GLOB.test_log, text) SEND_TEXT(world.log, text) #endif + +/* Items with ADMINPRIVATE prefixed are stripped from public logs. */ /proc/log_admin(text) GLOB.admin_log.Add(text) if (CONFIG_GET(flag/log_admin)) - WRITE_FILE(GLOB.world_game_log, "\[[time_stamp()]]ADMIN: [text]") + WRITE_LOG(GLOB.world_game_log, "ADMIN: [text]") -//Items using this proc are stripped from public logs - use with caution /proc/log_admin_private(text) GLOB.admin_log.Add(text) if (CONFIG_GET(flag/log_admin)) - WRITE_FILE(GLOB.world_game_log, "\[[time_stamp()]]ADMINPRIVATE: [text]") + WRITE_LOG(GLOB.world_game_log, "ADMINPRIVATE: [text]") /proc/log_adminsay(text) if (CONFIG_GET(flag/log_adminchat)) - log_admin_private("ASAY: [text]") + WRITE_LOG(GLOB.world_game_log, "ADMINPRIVATE: ASAY: [text]") /proc/log_dsay(text) if (CONFIG_GET(flag/log_adminchat)) - log_admin("DSAY: [text]") + WRITE_LOG(GLOB.world_game_log, "ADMIN: DSAY: [text]") + +/* All other items are public. */ /proc/log_game(text) if (CONFIG_GET(flag/log_game)) - WRITE_FILE(GLOB.world_game_log, "\[[time_stamp()]]GAME: [text]") - -/proc/log_vote(text) - if (CONFIG_GET(flag/log_vote)) - WRITE_FILE(GLOB.world_game_log, "\[[time_stamp()]]VOTE: [text]") + WRITE_LOG(GLOB.world_game_log, "GAME: [text]") /proc/log_access(text) if (CONFIG_GET(flag/log_access)) - WRITE_FILE(GLOB.world_game_log, "\[[time_stamp()]]ACCESS: [text]") - -/proc/log_say(text) - if (CONFIG_GET(flag/log_say)) - WRITE_FILE(GLOB.world_game_log, "\[[time_stamp()]]SAY: [text]") - -/proc/log_prayer(text) - if (CONFIG_GET(flag/log_prayer)) - WRITE_FILE(GLOB.world_game_log, "\[[time_stamp()]]PRAY: [text]") + WRITE_LOG(GLOB.world_game_log, "ACCESS: [text]") /proc/log_law(text) if (CONFIG_GET(flag/log_law)) - WRITE_FILE(GLOB.world_game_log, "\[[time_stamp()]]LAW: [text]") - -/proc/log_ooc(text) - if (CONFIG_GET(flag/log_ooc)) - WRITE_FILE(GLOB.world_game_log, "\[[time_stamp()]]OOC: [text]") - -/proc/log_whisper(text) - if (CONFIG_GET(flag/log_whisper)) - WRITE_FILE(GLOB.world_game_log, "\[[time_stamp()]]WHISPER: [text]") - -/proc/log_emote(text) - if (CONFIG_GET(flag/log_emote)) - WRITE_FILE(GLOB.world_game_log, "\[[time_stamp()]]EMOTE: [text]") + WRITE_LOG(GLOB.world_game_log, "LAW: [text]") /proc/log_attack(text) if (CONFIG_GET(flag/log_attack)) - WRITE_FILE(GLOB.world_attack_log, "\[[time_stamp()]]ATTACK: [text]") + WRITE_LOG(GLOB.world_attack_log, "ATTACK: [text]") + +/proc/log_manifest(ckey, datum/mind/mind,mob/body, latejoin = FALSE) + if (CONFIG_GET(flag/log_manifest)) + WRITE_LOG(GLOB.world_manifest_log, "[ckey] \\ [body.real_name] \\ [mind.assigned_role] \\ [mind.special_role ? mind.special_role : "NONE"] \\ [latejoin ? "LATEJOIN":"ROUNDSTART"]") + + +/proc/log_say(text) + if (CONFIG_GET(flag/log_say)) + WRITE_LOG(GLOB.world_game_log, "SAY: [text]") + +/proc/log_ooc(text) + if (CONFIG_GET(flag/log_ooc)) + WRITE_LOG(GLOB.world_game_log, "OOC: [text]") + +/proc/log_whisper(text) + if (CONFIG_GET(flag/log_whisper)) + WRITE_LOG(GLOB.world_game_log, "WHISPER: [text]") + +/proc/log_emote(text) + if (CONFIG_GET(flag/log_emote)) + WRITE_LOG(GLOB.world_game_log, "EMOTE: [text]") + +/proc/log_prayer(text) + if (CONFIG_GET(flag/log_prayer)) + WRITE_LOG(GLOB.world_game_log, "PRAY: [text]") /proc/log_pda(text) if (CONFIG_GET(flag/log_pda)) - WRITE_FILE(GLOB.world_pda_log, "\[[time_stamp()]]PDA: [text]") + WRITE_LOG(GLOB.world_pda_log, "PDA: [text]") /proc/log_comment(text) if (CONFIG_GET(flag/log_pda)) //reusing the PDA option because I really don't think news comments are worth a config option - WRITE_FILE(GLOB.world_game_log, "\[[time_stamp()]]COMMENT: [text]") + WRITE_LOG(GLOB.world_pda_log, "COMMENT: [text]") /proc/log_chat(text) if (CONFIG_GET(flag/log_pda)) - WRITE_FILE(GLOB.world_game_log, "\[[time_stamp()]]CHAT: [text]") + //same thing here + WRITE_LOG(GLOB.world_pda_log, "CHAT: [text]") -/proc/log_qdel(text) - WRITE_FILE(GLOB.world_qdel_log, "\[[time_stamp()]]QDEL: [text]") +/proc/log_vote(text) + if (CONFIG_GET(flag/log_vote)) + WRITE_LOG(GLOB.world_game_log, "VOTE: [text]") + + +/proc/log_topic(text) + WRITE_LOG(GLOB.world_game_log, "TOPIC: [text]") + +/proc/log_href(text) + WRITE_LOG(GLOB.world_href_log, "HREF: [text]") /proc/log_sql(text) - WRITE_FILE(GLOB.sql_error_log, "\[[time_stamp()]]SQL: [text]") + WRITE_LOG(GLOB.sql_error_log, "SQL: [text]") -/proc/log_config(text) - WRITE_FILE(GLOB.config_error_log, text) - SEND_TEXT(world.log, text) +/proc/log_qdel(text) + WRITE_LOG(GLOB.world_qdel_log, "QDEL: [text]") -//This replaces world.log so it displays both in DD and the file +/* Log to both DD and the logfile. */ /proc/log_world(text) - WRITE_FILE(GLOB.world_runtime_log, text) + WRITE_LOG(GLOB.world_runtime_log, text) SEND_TEXT(world.log, text) -// Helper procs for building detailed log lines +/* Log to the logfile only. */ +/proc/log_runtime(text) + WRITE_LOG(GLOB.world_runtime_log, text) +/* Rarely gets called; just here in case the config breaks. */ +/proc/log_config(text) + WRITE_LOG(GLOB.config_error_log, text) + SEND_TEXT(world.log, text) + + +/* For logging round startup. */ +/proc/start_log(log) + WRITE_LOG(log, "Starting up round ID [GLOB.round_id].\n-------------------------") + +/* Close open log handles. This should be called as late as possible, and no logging should hapen after. */ +/proc/shutdown_logging() + call(RUST_G, "log_close_all")() + + +/* Helper procs for building detailed log lines */ /proc/datum_info_line(datum/D) if(!istype(D)) return @@ -136,7 +170,5 @@ else if(A.loc) return "[A.loc] (0, 0, 0) ([A.loc.type])" - -/proc/log_manifest(key,datum/mind/mind,mob/body,latejoin = FALSE) - if (CONFIG_GET(flag/log_manifest)) - WRITE_FILE(GLOB.manifest_log, "[key] \\ [body.real_name] \\ [mind.assigned_role] \\ [mind.special_role ? mind.special_role : "NONE"] \\ [latejoin ? "LATEJOIN":"ROUNDSTART"]") \ No newline at end of file +//this is only used here (for now) +#undef RUST_G diff --git a/code/_globalvars/logging.dm b/code/_globalvars/logging.dm index 5df8ab5ee9e..ff397785d89 100644 --- a/code/_globalvars/logging.dm +++ b/code/_globalvars/logging.dm @@ -18,8 +18,8 @@ GLOBAL_VAR(sql_error_log) GLOBAL_PROTECT(sql_error_log) GLOBAL_VAR(world_pda_log) GLOBAL_PROTECT(world_pda_log) -GLOBAL_VAR(manifest_log) -GLOBAL_PROTECT(manifest_log) +GLOBAL_VAR(world_manifest_log) +GLOBAL_PROTECT(world_manifest_log) GLOBAL_LIST_EMPTY(bombers) GLOBAL_PROTECT(bombers) @@ -41,4 +41,4 @@ GLOBAL_PROTECT(adminlog) GLOBAL_LIST_EMPTY(individual_log_list) // Logs each mob individual logs, a global so it doesn't get lost on cloning/changing mobs -GLOBAL_LIST_EMPTY(active_turfs_startlist) \ No newline at end of file +GLOBAL_LIST_EMPTY(active_turfs_startlist) diff --git a/code/controllers/configuration/configuration.dm b/code/controllers/configuration/configuration.dm index 403ad067849..0f662ad97d9 100644 --- a/code/controllers/configuration/configuration.dm +++ b/code/controllers/configuration/configuration.dm @@ -258,7 +258,7 @@ if ("disabled") currentmap = null else - WRITE_FILE(GLOB.config_error_log, "Unknown command in map vote config: '[command]'") + log_config("Unknown command in map vote config: '[command]'") /datum/controller/configuration/proc/pick_mode(mode_name) diff --git a/code/game/objects/structures/morgue.dm b/code/game/objects/structures/morgue.dm index 8cefa660054..4d3b19177ed 100644 --- a/code/game/objects/structures/morgue.dm +++ b/code/game/objects/structures/morgue.dm @@ -257,9 +257,9 @@ GLOBAL_LIST_EMPTY(crematoriums) M.emote("scream") if(user) user.log_message("Cremated [M]/[M.ckey]", INDIVIDUAL_ATTACK_LOG) - log_attack("\[[time_stamp()]\] [user]/[user.ckey] cremated [M]/[M.ckey]") + log_attack("[user]/[user.ckey] cremated [M]/[M.ckey]") else - log_attack("\[[time_stamp()]\] UNKNOWN cremated [M]/[M.ckey]") + log_attack("UNKNOWN cremated [M]/[M.ckey]") M.death(1) if(M) //some animals get automatically deleted on death. M.ghostize() diff --git a/code/game/world.dm b/code/game/world.dm index 1aa727e873a..79d287da00a 100644 --- a/code/game/world.dm +++ b/code/game/world.dm @@ -4,14 +4,14 @@ GLOBAL_VAR(security_mode) GLOBAL_VAR(restart_counter) GLOBAL_PROTECT(security_mode) -//This happens after the Master subsystem news (it's a global datum) +//This happens after the Master subsystem new(s) (it's a global datum) //So subsystems globals exist, but are not initialised /world/New() - log_world("World loaded at [time_stamp()]") + log_world("World loaded at [time_stamp()]!") SetupExternalRSC() - GLOB.config_error_log = GLOB.manifest_log = GLOB.world_pda_log = GLOB.sql_error_log = GLOB.world_href_log = GLOB.world_runtime_log = GLOB.world_attack_log = GLOB.world_game_log = file("data/logs/config_error.log") //temporary file used to record errors with loading config, moved to log directory once logging is set bl + GLOB.config_error_log = GLOB.world_manifest_log = GLOB.world_pda_log = GLOB.sql_error_log = GLOB.world_href_log = GLOB.world_runtime_log = GLOB.world_attack_log = GLOB.world_game_log = "data/logs/config_error.log" //temporary file used to record errors with loading config, moved to log directory once logging is set bl CheckSecurityMode() @@ -81,24 +81,30 @@ GLOBAL_PROTECT(security_mode) GLOB.log_directory += "[replacetext(time_stamp(), ":", ".")]" else GLOB.log_directory = "data/logs/[override_dir]" - GLOB.world_game_log = file("[GLOB.log_directory]/game.log") - GLOB.world_attack_log = file("[GLOB.log_directory]/attack.log") - GLOB.world_runtime_log = file("[GLOB.log_directory]/runtime.log") - GLOB.world_qdel_log = file("[GLOB.log_directory]/qdel.log") - GLOB.world_href_log = file("[GLOB.log_directory]/hrefs.html") - GLOB.world_pda_log = file("[GLOB.log_directory]/pda.log") - GLOB.sql_error_log = file("[GLOB.log_directory]/sql.log") - GLOB.manifest_log = file("[GLOB.log_directory]/manifest.log") + + GLOB.world_game_log = "[GLOB.log_directory]/game.log" + GLOB.world_attack_log = "[GLOB.log_directory]/attack.log" + GLOB.world_pda_log = "[GLOB.log_directory]/pda.log" + GLOB.world_manifest_log = "[GLOB.log_directory]/manifest.log" + GLOB.world_href_log = "[GLOB.log_directory]/hrefs.log" + GLOB.sql_error_log = "[GLOB.log_directory]/sql.log" + GLOB.world_qdel_log = "[GLOB.log_directory]/qdel.log" + GLOB.world_runtime_log = "[GLOB.log_directory]/runtime.log" + #ifdef UNIT_TESTS GLOB.test_log = file("[GLOB.log_directory]/tests.log") - WRITE_FILE(GLOB.test_log, "\n\nStarting up round ID [GLOB.round_id]. [time_stamp()]\n---------------------") + start_log(GLOB.test_log) #endif - WRITE_FILE(GLOB.world_game_log, "\n\nStarting up round ID [GLOB.round_id]. [time_stamp()]\n---------------------") - WRITE_FILE(GLOB.world_attack_log, "\n\nStarting up round ID [GLOB.round_id]. [time_stamp()]\n---------------------") - WRITE_FILE(GLOB.world_runtime_log, "\n\nStarting up round ID [GLOB.round_id]. [time_stamp()]\n---------------------") - WRITE_FILE(GLOB.world_pda_log, "\n\nStarting up round ID [GLOB.round_id]. [time_stamp()]\n---------------------") - WRITE_FILE(GLOB.manifest_log, "\n\nStarting up round ID [GLOB.round_id]. [time_stamp()]\n---------------------") - GLOB.changelog_hash = md5('html/changelog.html') //used for telling if the changelog has changed recently + start_log(GLOB.world_game_log) + start_log(GLOB.world_attack_log) + start_log(GLOB.world_pda_log) + start_log(GLOB.world_manifest_log) + start_log(GLOB.world_href_log) + start_log(GLOB.sql_error_log) + start_log(GLOB.world_qdel_log) + start_log(GLOB.world_runtime_log) + + GLOB.changelog_hash = md5('html/changelog.html') //for telling if the changelog has changed recently if(fexists(GLOB.config_error_log)) fcopy(GLOB.config_error_log, "[GLOB.log_directory]/config_error.log") fdel(GLOB.config_error_log) @@ -121,7 +127,6 @@ GLOBAL_PROTECT(security_mode) warning("/tg/station 13 uses many file operations, a few shell()s, and some external call()s. Trusted mode is recommended. You can download our source code for your own browsing and compilation at https://github.com/tgstation/tgstation") /world/Topic(T, addr, master, key) - SERVER_TOOLS_ON_TOPIC //redirect to server tools if necessary var/static/list/topic_handlers = TopicHandlers() @@ -134,7 +139,7 @@ GLOBAL_PROTECT(security_mode) break if((!handler || initial(handler.log)) && config && CONFIG_GET(flag/log_world_topic)) - WRITE_FILE(GLOB.world_game_log, "TOPIC: \"[T]\", from:[addr], master:[master], key:[key]") + log_topic("\"[T]\", from:[addr], master:[master], key:[key]") if(!handler) return @@ -210,9 +215,11 @@ GLOBAL_PROTECT(security_mode) if(do_hard_reboot) log_world("World hard rebooted at [time_stamp()]") + shutdown_logging() // See comment below. SERVER_TOOLS_REBOOT_BYOND log_world("World rebooted at [time_stamp()]") + shutdown_logging() // Past this point, no logging procs can be used, at risk of data loss. ..() /world/proc/update_status() diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index d25f257ba24..7ccfa950a77 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -38,14 +38,12 @@ GLOBAL_LIST_INIT(admin_verbs_admin, world.AVerbsAdmin()) /datum/admins/proc/set_admin_notice, /*announcement all clients see when joining the server.*/ /client/proc/admin_ghost, /*allows us to ghost/reenter body at will*/ /client/proc/toggle_view_range, /*changes how far we can see*/ - /datum/admins/proc/view_txt_log, /*shows the server log (world_game_log) for today*/ - /datum/admins/proc/view_atk_log, /*shows the server combat-log, doesn't do anything presently*/ + /client/proc/getserverlogs, /*for accessing server logs*/ /client/proc/cmd_admin_subtle_message, /*send an message to somebody as a 'voice in their head'*/ /client/proc/cmd_admin_delete, /*delete an instance/object/mob/etc*/ /client/proc/cmd_admin_check_contents, /*displays the contents of an instance*/ /client/proc/check_antagonists, /*shows all antags*/ /datum/admins/proc/access_news_network, /*allows access of newscasters*/ - /client/proc/getserverlog, /*allows us to fetch server logs (world_game_log) for other days*/ /client/proc/jumptocoord, /*we ghost and jump to a coordinate*/ /client/proc/Getmob, /*teleports a mob to our location*/ /client/proc/Getkey, /*teleports a mob with a certain ckey to our location*/ @@ -181,8 +179,6 @@ GLOBAL_LIST_INIT(admin_verbs_hideable, list( /datum/admins/proc/set_admin_notice, /client/proc/admin_ghost, /client/proc/toggle_view_range, - /datum/admins/proc/view_txt_log, - /datum/admins/proc/view_atk_log, /client/proc/cmd_admin_subtle_message, /client/proc/cmd_admin_check_contents, /datum/admins/proc/access_news_network, diff --git a/code/modules/admin/verbs/getlogs.dm b/code/modules/admin/verbs/getlogs.dm index 95f6d1166b2..062d0458629 100644 --- a/code/modules/admin/verbs/getlogs.dm +++ b/code/modules/admin/verbs/getlogs.dm @@ -1,9 +1,8 @@ //This proc allows download of past server logs saved within the data/logs/ folder. -//It works similarly to show-server-log. -/client/proc/getserverlog() - set name = ".getserverlog" - set desc = "Fetch logfiles from data/logs" - set category = null +/client/proc/getserverlogs() + set name = "Get Server Logs" + set desc = "View/retrieve logfiles." + set category = "Admin" var/path = browse_files("data/logs/") if(!path) @@ -13,9 +12,7 @@ return message_admins("[key_name_admin(src)] accessed file: [path]") - //this is copypasta because making it a proc would mean locking out adminproccalls, - // and that system is buggy enough with false positives that I don't want to risk locking admins out of legit calls. - switch(alert("View (in game), Open (in your system's text editor), or Download file [path]?", "Log File Opening", "View", "Open", "Download")) + switch(alert("View (in game), Open (in your system's text editor), or Download?", path, "View", "Open", "Download")) if ("View") src << browse("
[html_encode(file2text(file(path)))]
", list2params(list("window" = "viewfile.[path]"))) if ("Open") @@ -24,52 +21,5 @@ src << ftp(file(path)) else return - to_chat(src, "Attempting to send file, this may take a fair few minutes if the file is very large.") - return - - -//Other log stuff put here for the sake of organisation - -//Shows today's server log -/datum/admins/proc/view_txt_log() - set category = "Admin" - set name = "Show Server Log" - set desc = "Shows server log for this round." - - if(fexists("[GLOB.world_game_log]")) - switch(alert("View (in game), Open (in your system's text editor), or Download file [GLOB.world_game_log]?", "Log File Opening", "View", "Open", "Download")) - if ("View") - src << browse("
[html_encode(file2text(GLOB.world_game_log))]
", list2params(list("window" = "viewfile.[GLOB.world_game_log]"))) - if ("Open") - src << run(GLOB.world_game_log) - if ("Download") - src << ftp(GLOB.world_game_log) - else - return - else - to_chat(src, "Server log not found, try using .getserverlog.") - return - SSblackbox.record_feedback("tally", "admin_verb", 1, "Show Server Log") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - return - -//Shows today's attack log -/datum/admins/proc/view_atk_log() - set category = "Admin" - set name = "Show Server Attack Log" - set desc = "Shows server attack log for this round." - - if(fexists("[GLOB.world_attack_log]")) - switch(alert("View (in game), Open (in your system's text editor), or Download file [GLOB.world_attack_log]?", "Log File Opening", "View", "Open", "Download")) - if ("View") - src << browse("
[html_encode(file2text(GLOB.world_attack_log))]
", list2params(list("window" = "viewfile.[GLOB.world_attack_log]"))) - if ("Open") - src << run(GLOB.world_attack_log) - if ("Download") - src << ftp(GLOB.world_attack_log) - else - return - else - to_chat(src, "Server attack log not found, try using .getserverlog.") - return - SSblackbox.record_feedback("tally", "admin_verb", 1, "Show Server Attack log") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + to_chat(src, "Attempting to send [path], this may take a fair few minutes if the file is very large.") return diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm index 4a4a36157e7..73cb11cae8d 100644 --- a/code/modules/client/client_procs.dm +++ b/code/modules/client/client_procs.dm @@ -81,7 +81,7 @@ GLOBAL_LIST_INIT(blacklisted_builds, list( //Logs all hrefs, except chat pings if(!(href_list["_src_"] == "chat" && href_list["proc"] == "ping" && LAZYLEN(href_list) == 2)) - WRITE_FILE(GLOB.world_href_log, "[time_stamp(show_ds = TRUE)] [src] (usr:[usr]\[[COORD(usr)]\]) || [hsrc ? "[hsrc] " : ""][href]
") + log_href("[src] (usr:[usr]\[[COORD(usr)]\]) : [hsrc ? "[hsrc] " : ""][href]") // Admin PM if(href_list["priv_msg"]) diff --git a/code/modules/error_handler/error_handler.dm b/code/modules/error_handler/error_handler.dm index 304ddce7ebe..ad4e2600d19 100644 --- a/code/modules/error_handler/error_handler.dm +++ b/code/modules/error_handler/error_handler.dm @@ -9,18 +9,13 @@ GLOBAL_VAR_INIT(total_runtimes_skipped, 0) GLOB.total_runtimes++ if(!istype(E)) //Something threw an unusual exception - log_world("\[[time_stamp()]] Uncaught exception: [E]") + log_world("uncaught runtime error: [E]") return ..() //this is snowflake because of a byond bug (ID:2306577), do not attempt to call non-builtin procs in this if if(copytext(E.name,1,32) == "Maximum recursion level reached") - var/list/split = splittext(E.desc, "\n") - for (var/i in 1 to split.len) - if (split[i] != "") - split[i] = "\[[time2text(world.timeofday,"hh:mm:ss")]\][split[i]]" - E.desc = jointext(split, "\n") //log to world while intentionally triggering the byond bug. - log_world("\[[time2text(world.timeofday,"hh:mm:ss")]\]runtime error: [E.name]\n[E.desc]") + log_world("runtime error: [E.name]\n[E.desc]") //if we got to here without silently ending, the byond bug has been fixed. log_world("The bug with recursion runtimes has been fixed. Please remove the snowflake check from world/Error in [__FILE__]:[__LINE__]") return //this will never happen. @@ -130,20 +125,6 @@ GLOBAL_VAR_INIT(total_runtimes_skipped, 0) GLOB.current_test.Fail("[main_line]\n[desclines.Join("\n")]") #endif -/* This logs the runtime in the old format */ - E.name = "\n\[[time2text(world.timeofday,"hh:mm:ss")]\][E.name]" - - //Original - // - var/list/split = splittext(E.desc, "\n") - for (var/i in 1 to split.len) - if (split[i] != "") - split[i] = "\[[time2text(world.timeofday,"hh:mm:ss")]\][split[i]]" - E.desc = jointext(split, "\n") - world.log = GLOB.world_runtime_log - ..(E) - - world.log = null - -#endif + // This writes the regular format (unwrapping newlines and inserting timestamps as needed). + log_runtime("runtime error: [E.name]\n[E.desc]") diff --git a/rust_g.dll b/rust_g.dll new file mode 100644 index 0000000000000000000000000000000000000000..cf3352b2069b922c8e61ce9d57eaad7cb4547e18 GIT binary patch literal 175104 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