log4cplus is a simple to use C++ logging API providing thread-safe, flexible, and arbitrarily granular control over log management and configuration. It is modelled after the Java log4j API.

Project Activity

See All Activity >

License

Apache License V2.0

Follow log4cplus

log4cplus Web Site

Other Useful Business Software
Fully managed relational database service for MySQL, PostgreSQL, and SQL Server Icon
Fully managed relational database service for MySQL, PostgreSQL, and SQL Server

Focus on your application, and leave the database to us

Cloud SQL manages your databases so you don't have to, so your business can run without disruption. It automates all your backups, replication, patches, encryption, and storage capacity increases to give your applications the reliability, scalability, and security they need.
Rate This Project
Login To Rate This Project

User Ratings

★★★★★
★★★★
★★★
★★
22
0
0
1
3
ease 1 of 5 2 of 5 3 of 5 4 of 5 5 of 5 3 / 5
features 1 of 5 2 of 5 3 of 5 4 of 5 5 of 5 4 / 5
design 1 of 5 2 of 5 3 of 5 4 of 5 5 of 5 3 / 5
support 1 of 5 2 of 5 3 of 5 4 of 5 5 of 5 3 / 5

User Reviews

  • This logging library is not for the faint of heart. It's quite user-hostile, partly due to the lack of good documentation. Even so, this library can serve adequately for simple applications. The main problem lies with the way it manages lifetimes, memory and initialization. One cannot initialize the library more than once. If your client application forks, you better shut down the logger first, and then make sure that the new process immediately does an exec, after which the new process must reinitialize the logger. And the forking/parent process can no longer use the logger. This logger could be a great one with a few changes: 1. Get rid of all global/static objects. Allow the user to create and manage the DefaultContext, etc, with modern RAII techniques. 2. Allow the library to be initialized and uninitialized multiple times, similar to a Phoenix Singleton.
  • hi worked quite well for me here is a guide if you have problems How to Linux unzip the files and open now a terminal in the created folder step 1 enter in your terminal: cmake . step 2 after cmake is finished enter: make step 3 now enter: sudo make install after this log4cplus files ,which you need to Link in your IDE are installed in /usr/local/include/log4cplus and /usr/local/liblog4cplus.so now you can close your terminal and you 're finshed For the ones who using cmake here is an example CMakeLists.txt ######################CMakeLists.txt############# cmake_minimum_required(VERSION 2.8) add_compile_options(-std=c++14) #project name project( Log4CPlusExample) set( CMAKE_C_FLAGS "-Wall -g" ) file(GLOB SRCS *.cpp *.h) set(LOG4CPLUS_INCLUDE_DIR /usr/local/include/log4cplus) set(LOG4PLUS_LIBRARY /usr/local/lib/liblog4cplus.so) add_executable( Log4CPlusExample ${SRCS} ) include_directories( ${LOG4CPLUS_INCLUDE_DIR} ) target_link_libraries(Log4CPlusExample ${LOG4PLUS_LIBRARY} ) ################################################# Here is a small Hello World logger example #################MyLogger.h########################## /* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ /* * File: MyLogger.h * Author: yoymoyroy * * Created on 26. April 2017, 14:04 */ //my log header #ifndef MYLogger_H #define MYLogger_H #include <log4cplus/loggingmacros.h> //wichtig enthält alle wege wie ich einen Log Schreibe #include <log4cplus/consoleappender.h> #include <log4cplus/layout.h> #include <log4cplus/logger.h> //Consol appender static log4cplus::helpers::SharedObjectPtr<log4cplus::Appender> consoleAppender (new log4cplus::ConsoleAppender()); static std::string pattern = "%d{%m/%d/%y %H:%M:%S} - %m [%l]%n"; static std::auto_ptr<log4cplus::Layout> layout(new log4cplus::PatternLayout(pattern)); //logger static log4cplus::Logger logger = log4cplus::Logger::getInstance("Display"); #endif ############################################## ##############main.cpp###################### #include "MyLogger.h" using namespace log4cplus; using namespace log4cplus::helpers; int main() { consoleAppender->setName("ConsolAppender"); consoleAppender->setLayout(layout); logger.setLogLevel(ALL_LOG_LEVEL); logger.addAppender(consoleAppender); LOG4CPLUS_INFO(logger,"Hallo World!!"); } ######################################## thats it greedings from Germany!
  • When i use the AsyncAppender in V1.2.0, VS2010 had detected many memory leaks like this: {2713} normal block at 0x00000000039C3070, 40 bytes long. Data: <@ I > 40 8B 49 00 00 00 00 00 FF FF FF FF 00 00 00 00 {2712} normal block at 0x00000000039BE0B0, 72 bytes long. Data: < @ @ > 08 EE 86 40 01 00 00 00 10 EE 86 40 01 00 00 00 {2711} normal block at 0x00000000039C1F40, 40 bytes long. Data: < I > E0 8A 49 00 00 00 00 00 FF FF FF FF 00 00 00 00 {2710} normal block at 0x00000000039BE000, 64 bytes long. Data: <(z @ 8z @ > 28 7A 87 40 01 00 00 00 38 7A 87 40 01 00 00 00 {2709} normal block at 0x00000000039C1ED0, 8 bytes long. Data: < > E4 01 00 00 00 00 00 00 {2708} normal block at 0x00000000039BDA00, 8 bytes long. Data: < > E0 01 00 00 00 00 00 00 {2707} normal block at 0x00000000039C1E40, 40 bytes long. Data: < I > 80 8A 49 00 00 00 00 00 FF FF FF FF 00 00 00 00 {2706} normal block at 0x00000000039BF370, 16 bytes long. Data: < > 18 A2 9B 03 00 00 00 00 00 00 00 00 00 00 00 00 {2705} normal block at 0x00000000039BF2E0, 40 bytes long. Data: < I > 20 8A 49 00 00 00 00 00 FF FF FF FF 00 00 00 00 {2704} normal block at 0x00000000039BA210, 112 bytes long. Data: < @ p > B8 C4 87 40 01 00 00 00 70 F3 9B 03 00 00 00 00 {2701} normal block at 0x00000000039B9300, 8 bytes long. Data: < > 00 00 00 00 00 00 00 00 {2309} normal block at 0x00000000039C1DC0, 16 bytes long. Data: < > 80 A4 9B 03 00 00 00 00 00 00 00 00 00 00 00 00 {2308} normal block at 0x00000000039C1D30, 40 bytes long. Data: <p=E > 70 3D 45 00 00 00 00 00 FF FF FF FF 00 00 00 00 {2307} normal block at 0x00000000039C1CB0, 16 bytes long. Data: < - @ > 88 2D 87 40 01 00 00 00 01 CD CD CD CD CD CD CD {2306} normal block at 0x00000000039C0E70, 16 bytes long. Data: < > 18 A4 9B 03 00 00 00 00 00 00 00 00 00 00 00 00 {2305} normal block at 0x00000000039C0DF0, 16 bytes long. Data: < @ @ > 90 8C 87 40 01 00 00 00 40 06 9B 03 00 00 00 00 {2304} normal block at 0x00000000039BA540, 40 bytes long. Data: <P<E > 50 3C 45 00 00 00 00 00 FF FF FF FF 00 00 00 00 {2303} normal block at 0x00000000039BA400, 208 bytes long. Data: < | @ H| @ > 08 7C 87 40 01 00 00 00 48 7C 87 40 01 00 00 00
  • Agree with kyberuserid..., I used this API in a project with hopes that it would simplify my task of development, but it didn't... Worked in native win32/x64 version of the application that uses it, but when called from managed code that uses the native version of application dll it throws scheduler_resource_allocation_error. So I'm going to consider looking for something else, maybe Pantheios - I'm back to square one after all that bloody hard work only to discover that I can't make a release because it fails with .NET
  • Thanks for good program!
    1 user found this review helpful.
Read more reviews >

Additional Project Details

Operating Systems

Cygwin, Linux, BSD, Windows

Languages

English

Intended Audience

Developers

Programming Language

C++

Related Categories

C++ Software Development Software, C++ Logging Software, C++ Log Management Tool

Registered

2001-11-27