Format log with a small macro logger
Looking at the code, it is clear that you took a part from existing C code.
Overal the code is acceptable, although when I should accept it, I would recommend some changes.

As already indicated in another answer, you could use scoped enums. This would remove the L_ prefix, unfortunately if you would use &lt;windows.h&gt;, you have to find a new name for ERROR.

The log_colors variable uses some strings to color the terminal. A comment about the actual colors would be nice.  Separate variables with clear names even better.

vlk_log_internal accepts variadic arguments, which is really good. You could use forwarding references to prevent expensive copies.

The output variable looks strange outside of the if-statement, you could move it in or introduce early return instead.

std::fprintf, is strange in C++ code, I mostly try to get rid of it. This because you have to know the ugly syntax of format strings and it is easy to make mistakes as passing an std::string instead of the char-ptr.
This even leaks into your API.

Next up, you have a define which has to hide the function.
You even nicely put something at the end to allow a semicolon. I don't like, however the other constants force you.

PS: I don't see std::data