Introduce a proper logging API with severities and categories

When I’m programming and/or developing products, I expect to be able to easily collect and analyze logs at development/runtime. However, this is simply not the case with Roblox, oftentimes. Roblox currently only exposes 3 globals (print, warn, error) as log severities to use. There is an Information/Message type, however, we have no clear or proper way to access it without using TestService, which will always append a TestService: prefix to the log. With no proper way to tag individual logs, this makes finding relevant logs in the DevConsole or the newer Error Reports analytics page, nearly impossible in bulky and large logs. This results in some games making their own tag systems and using the search to filter for them.

I want to be able to categorize my logs and filter them by those categories in the developer console and analytics page. I also expect to have some type of categories for CoreScripts as well, as these also show up across those pages, creating noise I don’t need or want, oftentimes. Additionally, I want more severities available to us, such as notice and debug. I also want the informational one exposed under fully usable API.

I would also like to see the relevant places displaying this info, especially the developer console, have reasonable severity defaults (i.e. it shouldn’t display debug messages by default).

13 Likes