You “email” category probably isn’t being used at all. If you log things manually with LogBox().getLogger(“myLoggerCategoryName”).error(“AHH!”) or whatever, it will look for a category (AKA “named logger”) named “myLoggerCategoryName” and use it. If one doesn’t exist, then it defaults up to the root logger. Errors caught by the framework are logged with the a category name of the app name I believe by default, which probably means that the root logger is servicing them.
Try taking out your “email” category and see if you are still get all the E-mails. If so, they are coming from root. Also, I don’t think errors that ColdBox catches are “fatal”, I believe they are just “error”. Logging only “fatal” will probably get you nothing. I don’t know the difference between error and fatal, but I haven’t wondered that before. Perhaps Luis can tell us since he came up with the logger levels. (Actually, I think he copied them from Log4J)
If you don’t want any other appenders (such as a log file appender for debug and warning stuff), then you should be able to set a levelMax for the root category of “1” or “ERROR” so it ignores debug, info, and warning. I would recommend putting the levelMax on the appender though, so you could still have debug/info/warning logs sent to a text file for instance. Both categories and appenders can have max and min log levels, and the stricter of the two is used.
Also, an alternative to turning off ALL messages that aren’t errors, is to create a category named “coldbox.system” and turn it off. Since logging categories inherit like package names, any logs sent from within the core ColdBox code (i.e. coldbox.system.ioc) would be ignored. That way you can start adding debugging logs to your app and ignore all the ColdBox chatter.