Giter Club home page Giter Club logo

logviewer's Introduction

LogViewer

LogViewer is a general purpose message viewer for log messages with support for multiple sources to receive messages from. The application is a modular design which can easily be extended to support other message types and transfer protocols.

Currently supported are:

  • Windows IPC (using WM_COPY messages)
  • ZeroMQ (PUB/SUB socket) for logging over the network. It demonstrates the brilliant performance of ZMQ sockets.

Currently in progress:

  • Serial port (native RS232, USB or Bluetooth)
  • Windows OutputDebugString API
  • MQTT (commonly used by IOT devices)

Each of these receivers support multiple subscribers for which messages can be displayed in a dedicated logviewer.

I compiled a pre-release version to play with in the releases section. I included the unit test executable that can be used to generate some sample logging.

Screenshots

Message viewer

LogViewer

LogViewer

LogViewer

LogViewer

Call Stack

CallStack

Watch List

Watch list with value history support. The history list can be automatically synchronize with the message list to monitor the value at any given time.

WatchList

Message Filter

Client side

MessageFilterClient

Source side

MessageFilterSource

Settings Dialog

Fully customizable message display settings.

Settings

UML diagrams

In the Documents folder you will find some UML diagrams which reveal the main application architecture.

ILogViewerManager TLogViewerSettings

There is also a mindmap with a technical overview of the application: LogViewer.xmind You need XMind to open this document. You can download a free version from the main website: XMind.

I made an image snapshot of the mindmap that you can open here: LogViewer.Mindmap.png

ILogger API

The DDuce library provides the Logger module to add logging to your application (Delphi/FreePascal-Lazarus). The DDuce demo application demonstrates the currently supported message types.

Logger demo

More examples can be found in my other Delphi projects listed on Github. LogViewer is also able to emit log messages by itself which can be monitored in another instance. Therefore the source instance needs to have the setting 'Emit log messages' enabled. The other instance needs to be started in 'debug mode' which also can be configured in the application settings.

A subset of this API has been ported to FPC/Lazarus. Take a look at my Lazarus projects to see examples how they are used.

Features currently supported using the ILogger interface methods

  • Info/Warning and Error messages
  • Method tracking with stack display showing execution times
  • Screenshot capture
  • Conditional logging
  • Checkpoints
  • Counters
  • Watches + value history support
  • Datasets
  • Bitmaps, and various other image formats
  • Objects
  • Components
  • Native value types with type information
  • Text with suppport for multiple highlighters
  • Actions
  • Up to 32 user-definable logging levels

Libraries used

The Object Pascal (Delphi) sources depend on the following open source libraries and components:

logviewer's People

Contributors

benative avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

logviewer's Issues

Download exe?

Looks great but there are a lot of dependencies so it's not easy to build. Is it possible to download the executables from somewhere to try it out?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.