ivanpointer / nulog Goto Github PK
View Code? Open in Web Editor NEWPowerfully Simple Logging. Period.
License: MIT License
Powerfully Simple Logging. Period.
License: MIT License
Update this to merge instead.
When performing a ReadOnlyCopy on LoggingConfig. This results in StaticMetaDataProviders being dropped during configuration.
The configuration needs to be tested in isolation. The fact that the configuration is a singleton is preventing this. A singleton configuration makes sense within the context of an application scope, as the default behavior.
The configuration needs to be made instantiable, and a singleton wrapper (factory?) which is used if no specific configuration is given. This may force a reorganization of the packages, according to the DIP, which, while being a really good thing, could prove to be a significant amount of effort.
The shutdown process of the target should allow all log events sent before the shutdown signal is sent to flush
During the unit tests, a particularly "Stressful" test which loads up 1,000 messages into the dispatcher, then immediately shuts it down, will occasionally fail, as only 999 messages get flushed - one is lost.
I need to update the dispatcher to have a mechanism where once shutdown, it no longer accepts new messages, but makes sure that everything that's already queued up is dispatched out.
Running tests with the Visual Studio test runner, of a library that uses NuLog, the test output window (and the trace listeners) get two System.AppDomainUnloadedException exceptions.
The way that the NuLog.json file is read creates an exclusive lock on the file. Update to use File.ReadAllText, to let .Net handle reading the file in a more thread-safe manner.
A while loop containing a Thread.Yield, mixed with priority lowest and marked as a background thread. This needs to be swapped out with a Threading.Timer.
There is a thread lock happening around the config. There are multiple locks being used by the config, I suspect the deadlock is because of having multiple locks. I'll simplify the config to have only a single lock object to avoid the deadlock.
Instead of adding the class that owns the logger as a tag, simply add the calling class as a tag.
Out of the box:
[3932] Failed to log the message "XXX" because an exception occured:
"NuLog.LoggingException: Failed to parse layout format
${DateTime:'{0:MM/dd/yyyy hh:mm:ss.fff}'} | ${Thread.ManagedThreadId:'{0,4}'} | ${Tags} | ${Message}${?Exception:'
Chase down why this is happening and identify a solution to fix this.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.