Comments (5)
If anyone sets the AsyncAppend=true
option and the thread pool has been disabled at compile time, the code will silently use the synchronous logging instead: https://github.com/log4cplus/log4cplus/blob/2.1.x/src/appender.cxx#L296-L320
from log4cplus.
See global-init.cxx for the gory details of initialisation and deinitialisation. The LOG4CPLUS_REQUIRE_EXPLICIT_INITIALIZATION
does something for initialisation only. It does not do anything for deinitialisation. The deinitialisation is necessary mainly for the thread pool to be shut down. If you are not going to use the asynchronous logging feature, you can set LOG4CPLUS_ENABLE_THREAD_POOL=OFF
at compile time and the thread pool will not be created. I have not tested this but I think you should not get stuck threads when you exit main()
even without the Initializer
from log4cplus.
Thanks a log @wilx for your swift response. It makes the matter totally clear to me.
We are using the configuration file to configure the framework, so I cannot rule out that someone would use the AsyncAppender. Hence, I cannot disable the thread pool (correct me if I am wrong).
I just wanted to make sure not to miss any built-in option to solve the issue. I will now implement a viable workaround in my shared library.
Shall I close this issue now?
from log4cplus.
This is incredible @wilx ! I am really baffled by your support! Thank you so much. I'll try this ASAP and give you feedback here. But I have no doubt that your patch is going to work.
Thanks again, this project is amazing.
from log4cplus.
@wilx The feedback as promised: The patch works nicely on windows (and is not needed on Linux). To me this issue has now been entirely solved within a single day :-D
Thanks a lot for your great support. I'll close the issue now.
from log4cplus.
Related Issues (20)
- ./configure fails using c++2a HOT 3
- How to configure PatternLayout to use __FUNCTION__ HOT 7
- A link error occurred while compiling the my program. HOT 4
- Setting log level through env in log config file HOT 4
- Help needed: how to periodically flush logger with appender's immediateFlush set to false? HOT 2
- log file name not change after rollover TimeBasedRollingFileAppender HOT 3
- log's maxsize>200kb,but it dosen't work HOT 2
- Opentelemetry integration HOT 1
- What kind of compilation options can correctly generate a multi-threaded logging library HOT 5
- Win64 application crash on exit HOT 1
- Why mingw can't complie log4cplus-2.1.1? HOT 1
- Sending logs from log4cplus to log4j via TCP HOT 1
- Is it possible to build log4cplus for QNX aarch64le? HOT 3
- Save all configuration in a file HOT 2
- Question: Which latest version of Log4cplus I should use on RedHat 7.9 with DevToolset11-toolchain ( GCC 11.2 ) compiler HOT 7
- Does not work when maxBackupIndex is set to 0 HOT 1
- Include Headers Possibly Causing Build Error HOT 5
- how to set FD_CLOEXEC for log4cplus HOT 1
- Inconsistent Log File Permissions HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from log4cplus.