C++ logging framework suggestions [closed]

2019-01-21 03:18发布

I'm looking for a C++ logging framework with the following features:

  • logs have a severity (info, warning, error, critical, etc)
  • logs are tagged with a module name
  • framework has a UI (or CLI) to configure for which modules we will actually log to file, and the minimum severity required for a log to be written to file.
  • has a viewer which lets me search per module, severity, module name, error name, etc

标签: c++ logging
6条回答
Juvenile、少年°
2楼-- · 2019-01-21 03:32

You could use wxWidgets and use it's excellent class for logging. It's rather easy and straightforward. For instance, you can create a dialog which gathers all your logs (e.g. wxLogError, wxLogMessage, wxLogDebug, etc.).

查看更多
Rolldiameter
3楼-- · 2019-01-21 03:41

No viewer but you could try pantheios. I have been using it for almost a year now and am quite happy with it.

查看更多
淡お忘
4楼-- · 2019-01-21 03:47

I strongly suggest Pantheios, as it's the only one that's completely type-safe, and is also very efficient. It imposes a little work on the user, in selecting the right "front-end" and "back-end", but once you've got it working, you can just fix and forget.

It doesn't provide sophisticated logging facilities - e.g. rolling files - but that's by design, because it's intended to be used in combination with other logging libraries that have more functionality (but poorer performance / type-safety).

查看更多
Evening l夕情丶
5楼-- · 2019-01-21 03:51

Pantheios is a good candidate in term of perormance but my personal preference is P7 library. My internal tests (CPU i7-4870HQ, SSD) shows that P7 is faster than Pantheios.

  • Pantheios writes 1.8M logs lines per second (time & text message)
  • P7 writes 2.4M logs lines per second (time, thread, CPU core, function, file, line and text message)
查看更多
The star\"
6楼-- · 2019-01-21 03:52

Not sure about the configuration from a UI or CLI. I've used both of these logging frameworks at one point or other.

https://sourceforge.net/projects/log4cplus/
https://logging.apache.org/log4cxx/index.html

It wouldn't be too hard to drive your logging based on a configuration file that could be editable by hand or through a quick and dirty GUI or CLI app. Might be a bit harder to adjust these dynamically but not too bad.

Update:

It looks like the proposed Boost.Log is now in Boost 1.54 which is at a stable release. If you are already using Boost than I would take a look at it.

查看更多
Viruses.
7楼-- · 2019-01-21 03:54

If you care about performance, I suggest you check out Pantheios. In particular, it's got very high performance, and it can be used in combination with other logging libraries -- it acts as an efficient and type-safe layer between the logging library (such as log4cxx) and your application code.

查看更多
登录 后发表回答