Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>mORMot is stable, even with latest XE2 version of Delphi.</p> <p>What you tried starting were the regression tests. Among its 6,000,000 tests, it includes the HTTP/1.1 Client-Server part of the ORM. Without the Admin rights, the <em>http.sys</em> Server is not able to register the URI, so you got errors. Which makes perfectly sense. It's a Vista/Seven restriction, not a mORMot restriction.</p> <p><em>The logging part can be used completely separated from the ORM part</em>. Logging is implemented in <code>SynCommons.pas</code> (and <code>SynLZ.pas</code> for the fast compression algorithm used for archival and .map embedding). I use the <code>TSynLog</code> class without any problem to log existing applications (even Delphi 5 and Delphi 6 applications), existing for years. The SQLite3 / ORM classes are implemented in other units. </p> <p>It supports the nesting of events, with auto-leave feature, just as you expect. That is you can write:</p> <pre><code>procedure TMyClass.MyMethod(const Params: integer); begin TSynLog.Enter; // .... my method code end; </code></pre> <p>And adding this <code>TSynLog.Enter</code> will be logged with indentation corresponding to the recursive level. IMHO this may meet your requirements. It will declare an <code>ISynLog</code> interface on the stack, which will be freed by Delphi at the "<code>end;</code>" code line, so it will implement an <em>Auto-Leave</em> feature. And the exact unit name, method name and source code line number will be written into the log (as <code>MyUnit.TMyClass.MyMethod (123)</code>), if you generated a .map file at compilation (which may be compressed and appended to the .exe so that your customers logs will contain the source line numbers). You have methods at the <code>ISynLog</code> interface level to add some custom logging, including parameters and custom state (you can log objects properties as JSON if you need to, or write your custom logging data).</p> <p>The exact timing of each methods are tracked, so you are able to profile your application from the data supplied by your customer.</p> <p>If you think the logs are too much verbose, you have several levels of logging, to be customized on the client side. See the <a href="http://blog.synopse.info/?q=tsynlog" rel="nofollow noreferrer">blog articles</a> and the corresponding part of the <a href="http://synopse.info/fossil/wiki?name=Downloads" rel="nofollow noreferrer">framework documentation</a> (in the <em>SynCommons</em> part). You've for instance "Fail" events and some custom kind of events. And it is totally VCL-independent, so you can use it without GUI or before any GUI is started.</p> <p>You have at hand a log viewer, which allow client-side profiling and nested Enter/Leave view (if you click on the "Leave" line, you'll go back to the corresponding "Enter", e.g.):</p> <p><img src="https://i.stack.imgur.com/e10iF.png" alt="Log Viewer"></p> <p>If this log viewer is not enough, you have its source code to make it fulfill your requirements, and all the needed classes to parse and process the .log file on your own, if you wish. Logs are textual by default, but can be compressed into binary on request, to save disk space (the log viewer is able to read those compressed binary files). Stack tracing and exception interception are both implemented, and can be activated on request.</p> <p>You could easily add a numeration like "1.2.1" to the logs, if you wish to. You've got the whole source code of the logging unit. Feel free to ask any question <a href="http://synopse.info" rel="nofollow noreferrer">in our forum</a>.</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload