none
Logging - Requirements RRS feed

  • Question

  • I'm very interested in establishing some new logging support at our site.

    Here's an overview of my requirements:

    1. Be able to use a "tail like" tool for staff to see activity as and when it happens, ideal for debugging etc, ideally with filtering etc.

    2. Be able to query the log using LINQ (e.g. LINQ Pad) with ability to read log file in reverse for efficiency (this means the file must be readable as a stream of objects suitable for LINQ queries).

    3. Be available as a service, easily called from applications in disparate locations.

    4. Be somewhat resilient - e.g. service queues message internally until safely written to file, and apps also queue internally if for some reason service goes away for a spell. Goal here is to never lose a message logged by an app if at all possible.

    5. Be able to read direct from log files without the need for a service (that is not burden the writing service at least).

    6. Include rollover (say new log file every 24 hrs etc)

    7. Support "urgent" so that urgent messages cause server to write/flush queued messages right away. (By this I mean most messages would get received by server and queued during say 30 sec window, (to reduce file IO activity) but when an "urgent" message is received the server basically acts as if queue expiry has happened and writes to file immediately.

    Years ago I used SmartInspect which was OK but we had a huge problem in that its GUI tool eventually locks up and uses tons of memory when we left it running for days on end (apparently it does not simply read new lines and render them).

    I know there are many things out there for logging but wanted to get input based on my requirements.

    Thx



    Tuesday, April 25, 2017 5:31 PM

All replies

  • Hi Korporal Kernel,

    According to your description, I am not sure what is your requirement? The usage of the tool named 'SmartInspect', Or you want to write a custom logging tools?

    Best regards,

    Cole Wu


    MSDN Community Support<br/> Please remember to click &quot;Mark as Answer&quot; the responses that resolved your issue, and to click &quot;Unmark as Answer&quot; if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact <a href="mailto:MSDNFSF@microsoft.com">MSDNFSF@microsoft.com</a>.

    Thursday, April 27, 2017 1:38 AM
    Moderator
  • Hi Cole,

    I'm simply trying to establish options - should I use some open source logging system/api/platform? should I look at hosted logging servives? should I consider a paid-for product (like SmartInspect) or should I simply devise a design myself and implement that?

    Thx

    Thursday, April 27, 2017 4:39 PM
  • Hi Korporal Kernel,

    >>I'm simply trying to establish options - should I use some open source logging system/api/platform? should I look at hosted logging servives?

    I try search on webs and sorry to tell you that I could not find related open source logging system.

    >>should I consider a paid-for product (like SmartInspect) or should I simply devise a design myself and implement that?

    >>According to your description, it seems that SmartInspect can match your requirement. if you want to design and implement it yourself, welcome to post here if your have any issue.

    Best regards,

    Cole Wu


    MSDN Community Support Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com

    Tuesday, May 9, 2017 2:45 AM
    Moderator
  • Humm... I'm sure Log4Net (.NET port of Log4J in Java) meet most if not all of the requirements. It can be used to log entries into file/event log/database. When choose to log to file, it does support log rotation etc.

    Just write a separate service that uses it and receive log request via MSMQ or IBMMQ if you wish to clear point 4. Point 7 can be cleared by writing your service to receive custom command (via ServiceController.Execute())


    Tuesday, May 9, 2017 3:53 AM
    Answerer