Skip to content

[feature] Logexpert's user exit to call script code #172

Description

@TekBear

How about extending/enhancing Logexpert's plugin capability by adding a user exit (aka wrapper) plugin that calls a user defined script (for example a VBScript) when each real time log data line arrives and before logexpert begins columnizer, highlight and trigger processing phase. The script is passed the log data line as input and returns a transformed data line or an empty line if script needs to do conditional filtering. I can then write the user defined VBScript code part to fix logs that do not follow strict column rules.

USE CASE:
In particular, I need to do that for Folding@home client log which is an inconsistent format. I need to code:

  • get the date stamp if line begins "***...DateTimestamp***" else get it from column 1
  • create an integer time value
  • add/subtract time zone offset
  • put new time back in correct place on line

This is a real time log, so pre-processing the logs before using logexpert would make this a more complex and ugly solution rather than have a general purpose user exit in logexpert that triggers on new log line data.

Examples of API hooks/user exits/plugins found in other software:

  • Bginfo.exe (Microsoft Sysinternals) has hooks for using user defined VBScript (full VB function list, and subset of other features)
  • Videolan (VLC) has hooks for calling LUA scripts.

It would be nice if wrapper was generic enough to support other script languages e.g. LUA, Python, or Perl. I could learn to write the back end code in another language if I have too. Logexpert performance is only going to be impacted if you need to use user defined scripts. I will help with testing phase if needed.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Featurewhat a great ideaenhancementthis will make things better

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions