Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is the most efficient thread-safe C++ logger? [closed]

Tags:

c++

logging

I am working on a performance critical multi-threaded application. I looked at rlog, Ace and Boost logging. I chose rlog because I read it was the fastest (when logging is disabled, it has the least overhead).

The problem I have is it shows the file name, line number etc. even in release mode. If you can tell me how to shut that information off, my problem might be solved. In any case what is the most efficient logger in C++ for my situation?

like image 789
cppalphadev Avatar asked Jan 13 '09 16:01

cppalphadev


People also ask

Is writing to a file thread safe C++?

The C++ Standard does not specify whether writing to streams is thread-safe, but usually it's not.

How do you write a logger in C++?

We will start by implementing the logger class and create a parametrized ctor. According to the RAII concept, this ctor will initialize the file stream. The second resource, the locking object, is needed in the output function. This output function which will add a logging message can be called by different threads.

Why is Spdlog fast?

Spdlog uses a lock-free queue which is the reason why it often is blazingly fast.


1 Answers

Unfortunately I am not able down vote at the moment. As far as I can say never ever use crap like Apache log4cxx. It contains serious bugs.

  1. The last release of 0.9 branch is 0.9.7 and still contains memory leaks because every class with virtual members has no virtual dtor.
  2. The newest release 0.10.x lost a lot of functionality from 0.9.x and is not backwards compatible. You are forced to rewrite a lot of your own code.
  3. The whole project seems to be unmaintained. The release of 0.11.xx has been announced for 2 years.

In my opinion you should go with boost.

like image 115
kirsche40 Avatar answered Oct 12 '22 13:10

kirsche40