You can use SPDLOG_VERSION to select the latest spdlog features
where available while falling back to older implementations otherwise.
Using SPDLOG_TO_VERSION() for the value to compare with is recommended.
for Example:
```c++
void sink_it_(const details::log_msg &msg) override
{
#if SPDLOG_VERSION < SPDLOG_TO_VERSION(1,4,0)
fmt::memory_buffer formatted;
#else
memory_buf_t formatted;
#endif
sinks::base_sink<Mutex>::formatter_->format(msg, formatted);
// bala bala...
}
```
Android logger (since API 30) checks the per-tag property `log.tag.<tag>` to determine if a log message is loggable. See https://developer.android.com/ndk/reference/group/logging#__android_log_is_loggable . For example, `__android_log_buf_write` for a VERBOSE message will call `__android_log_is_loggable` and return `-EPERM` if the log message will not be printed because `log.tag.<tag>` is set to `INFO`.
Instead of erroring with the following error message, the Android sink should handle `-EPERM`. It is not an error to disable a log via the run-time property.
```
[*** LOG ERROR #0001 ***] [2023-06-29 00:50:26] [logcat] logging to Android failed: Unknown error -1 [/path/to/file.cpp(123)]
```
* qt_sink: add some warning on its usage
* qt_sink: add some warning on its usage - fix
---------
Co-authored-by: Benoit FANCHON <bfanchon@nanoxplore.com>
* Removes special format handling for fmt. Regains test compatibility with fmt
1.10.0.
fixes#2735
* reverted std::vector back to filename_t and used pointer to array start likewise as fmt's implementation uses
* calc_filename buffer increase softened, exception is throw if buffer exceeds 4k, filename parameter renamed to match intend.
* calc_filetime based on std::put_time for simpler implementation