odygrd / quill

Asynchronous Low Latency C++ Logging Library
MIT License
1.36k stars 142 forks source link

Compile Time Checking of Log Messages not supported? #423

Closed DanielekW closed 3 months ago

DanielekW commented 4 months ago

I founded this this old issue which explains that compile time checking was supported for macros: https://github.com/odygrd/quill/issues/13

When I want to do simple test where there is an extra "{}" in formatted string: LOG_INFO(logger, "Hello {} {}", "world" ); auto test = fmtquill::format("Hello {} {}", "world"); compile error is raised only for fmtquill::format. Does this mean that for LOG_* macros there is no compile time check?

odygrd commented 3 months ago

They were removed in v3.8.0 https://github.com/odygrd/quill/blob/master/CHANGELOG.md#v380 The reason is that they were generating extra template instantiations for each log message and also that the exception is being caught by the backend worker thread. Therefore your program won't crash and you will also see a runtime error message for an invalid format