I agree that 0 (CRITICAL) as the baseline and the levels as an unsigned int is better. With the enum, understanding the numeric values should not be an issue moving forward.
I would suggest considering a compatibility mode / compile time option to preserve existing functionality for those that *really* need it, then it can be removed later on (hopefully). I can imagine someone quickly trying to run a project with old pre-compiled externals and getting flooded with prints which they could at the least disable via some compatibility flag, however the amount of time it might take for them to figure this out could make the point moot. OTOH if adding this ends up taking too much time/focus for little benefit, by all means don't do it. :)