We identified and fixed today several issues which may affect applications creating a lot of threads (i.e. not using a thread pool). The symptom was an unexpected access violation, when you reach a multiple of 256 threads count. You should better upgrade to at least revision 1.18.1351 if your […]
Tag - log
Using TSynLog with a lot of threads? PYou should better upgrade your source
2015-05-14. Open Source › mORMot Framework
Breaking change: New SynLog and SynTests unit extracted from SynCommons.pas
2014-11-23. Open Source › Open Source libraries
In order to enhance code modularity, we extracted logging and testing features from SynCommons.pas. Discover the new SynLog.pas and SynTests.pas units! Documentation has been updated to reflect the changes. This is a breaking change... Ensure you add SynLog and/or SynTests to your uses clauses, just […]
Log to the console
2013-02-03. Open Source › mORMot Framework
Our framework features an integrated logging class, ready to be enabled for support and statistics.
For debugging purposes, it could be very handy to output the logging content
to a console window.
It enables interactive debugging of a Client-Server process, for instance: you can interact with the Client, then look in real time at the server console window, and inspect which requests are processed, without the need to open the log file.
Depending on the events, colors will be used to write the corresponding information. Errors will be displayed as light red, for instance.
Enhance existing projects with mORMot
2012-12-31. Open Source › mORMot Framework
Even if mORMot will be more easily used in a project designed from scratch, it fits very well the purpose of evolving any existing Delphi project, or even creating the server side part of an AJAX application.
One benefit of such a framework is to facilitate the transition from a Client-Server architecture to a N-Tier layered pattern.
Synopse mORMot Framework 1.16
2012-05-28. Open Source › mORMot Framework
Our Open Source mORMot framework is now available in revision 1.16.
The main new features are the following:
- Interface-based services, i.e. comparable to WCF, but with Delphi strengths;
- ORM cache which purpose is to enhance server scaling and client responsiveness;
- Automatic JOIN query to unleash the underneath DB power;
- SQLite3 engine updated to latest revision 22.214.171.124;
- Major update of the associated documentation (now more than 800 pages);
- A lot of bug fixes and enhancements, mainly from users requests - thanks you all for your feedback, patches and ideas!
Thanks to its features, mORMot is now able to provide a stand-alone Domain-Driven Design framework for Delphi.
Quite a long and nice road for a little mORMot, and more to come!
2012-05-25. Open Source › mORMot Framework
With a previous article, we introduced the concept of "Domain-Driven design" into our framework presentation.
It's now time to detail a bit more this very nice software architecture design, and how mORMot is able to achieve such an implementation pattern.
The mORMot attitude
2012-04-25. Open Source › mORMot Framework
In a discussion with Henrick Hellström, in Embarcadero forums, I wrote some high-level information about mORMot.
It was clear to me that our little mORMot is now far away from a simple Client-Server solution.
The Henrick point was that with Real Thin Client (RTC), you are able to write any Client-Server solution, even a RESTful / JSON based one.
He is of course right, but it made clear to me all the work done in
mORMot since its beginning.
From a Client-Server ORM, it is now a complete SOA framework, ready to serve Domain-Driven-Design solutions.
Yes we can... fight bugs
2011-10-27. Pascal Programming
From a StackOverflow question about a freezing Delphi application, I posted some experiment-based debugging tricks.
May help any developer in his/her fight against random bugs...
Enhanced Log viewer
2011-08-20. Open Source › Open Source libraries
We already shipped a sophisticated set of logging classes some month ago.
Since then, its features have been enhanced, and the system has been deeply interfaced with our main ORM framework. Now almost all low-level or high-level operations can be logged on request.
But since the log files tend to be huge (for instance, if you set the logging for our unitary tests, the 6,000,000 unitary tests creates a 280 MB log file), a log viewer was definitively in need.
Enhanced logging in SynCommons
2011-04-14. Open Source › Open Source libraries
Logging is everything... unless you never wrote a bug in your program!
Let us introduce a new logging class:
- logging with a set of levels;
- fast, low execution overhead;
- can load .map file symbols to be used in logging;
- compression of .map into binary .mab (900 KB -> 70 KB);
- inclusion of the .map/.mab into the .exe;
- reading of an external .map to add unit names and line numbers to a log file without .map available information at execution;
- exception logging (Delphi or low-level exceptions) with unit names and line numbers;
- optional stack trace with units and line numbers;
- methods or procedure recursive tracing, with Enter and auto-Leave;
- high resolution time stamps, for customer-side profiling of the application execution;
- set / enumerates / TList / TPersistent / TObjectList / TContainer / dynamic array JSON serialization;
- per-thread or global logging;
- multiple log files on the same process;
- integrated log archival (in zip or any other format);
- Open Source, works from Delphi 6 up to XE.