About 2300 lines of logfile access code so far, probably need about triple that before I can do some testing and profiling. Hoping to get there next week, this ate up my weekend.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Split into 2 executables as planned: one to just call with a list of logfiles and have it spit out the merged view as text, so you can use it inside a script; the other with a curses-based UI, as a scrolling viewer of the merged logging info.
Biggest blocks so far:
mktime(3) is not useful (TZ issues), will have to write our own date/time parsing.
ncursesw is balky, will have to see how it works out... Should make sure to have a 7-bit clean view mode.
C lib regex requires null-terminated strings, so we can't scan logtext without chopping up and copying, which adds up.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Still putting together the basic building blocks. The simple, non-interactive lograw(1) utility is likely to achieve a primitive but usable form first; the terminal-based logras(1) application needs much more work. Next major chunk to tackle: the LogHead scanner code.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Used gprof and callgrind to find some performance bottlenecks and memory leaks, fixed them. Added output paragraphs, output time format, input format regexes. Getting closer to a usable lograw(1) utility; nowhere near logras(1) yet.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
My original goal of having a 0.0.1-0 release out by 2015-06-01 is looking less likely to be achieved: three days to go and not even started on packaging. Probably a week out.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
First view of scrolling through log with simple up/down, using uqtest(1) demo harness. Next up: cobble together real UiStack set-up; getting closer to pre-alpha of logras(1), probably with single view panel and few commands.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Second pre-alpha release 0.0-2 out, includes both logras(1) and lograw(1). This logras has a very simple interface (single combined view + help screen) and is not quite stable: internal exception use triggers segfaults. Next up: fill in some of the gaping holes in design, documentation and code.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Third pre-alpha release 0.0-3 out, changes in logras(1). Fixed segfault, added some help text, command aliases, ^/$ command, -delay option, etc. Next up: more stuff from the to-do list.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Fourth pre-alpha release 0.0-4 out, minor changes in logras(1): more manual text, welcome screen, doc comments, view title line. Multi-log mode broken in logras for now. Next up: fix that.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Fifth pre-alpha release 0.0-5 out, minor changes in logras(1): fixed multi-log, added colors, better ncurses init.
Next I want to add some low-prio polish (shell escape, fold labels, continuation marks, compact-label option), before going back to the semi-hard parts (adding item-count based commands, keeping the item cache trimmed, rebuild line cache on format change without junking fold cache, reading config from file) and the really interesting parts (adding search, memmap-mode, expansion file cache, multiple views, non-ASCII text). The last category may come after a 0.1-1 (alpha) release.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Sixth pre-alpha release 0.0-6 out. Did halfway complete rewrite of error message outlet (next revision should complete that), necessary before further progress is possible.
Last edit: tinco 2015-06-10
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Seventh pre-alpha release 0.0-7 out. Error message outlet almost complete; added lograw option --line (fol label), more doc. Not much progress on the issues listed two posts ago.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Some delay while I try to figure out how to handle non-ASCII text. Not sure how ncursesw handles combining chars, RTOL marks, double vs. single width glyphs, etc.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
About 2300 lines of logfile access code so far, probably need about triple that before I can do some testing and profiling. Hoping to get there next week, this ate up my weekend.
Split into 2 executables as planned: one to just call with a list of logfiles and have it spit out the merged view as text, so you can use it inside a script; the other with a curses-based UI, as a scrolling viewer of the merged logging info.
Biggest blocks so far:
More skeleton/glue code, this time for the screen handling. Trying to keep it simple. Nothing to see yet.
Still putting together the basic building blocks. The simple, non-interactive lograw(1) utility is likely to achieve a primitive but usable form first; the terminal-based logras(1) application needs much more work. Next major chunk to tackle: the LogHead scanner code.
Used gprof and callgrind to find some performance bottlenecks and memory leaks, fixed them. Added output paragraphs, output time format, input format regexes. Getting closer to a usable lograw(1) utility; nowhere near logras(1) yet.
My original goal of having a 0.0.1-0 release out by 2015-06-01 is looking less likely to be achieved: three days to go and not even started on packaging. Probably a week out.
First view of scrolling through log with simple up/down, using uqtest(1) demo harness. Next up: cobble together real UiStack set-up; getting closer to pre-alpha of logras(1), probably with single view panel and few commands.
Second pre-alpha release 0.0-2 out, includes both logras(1) and lograw(1). This logras has a very simple interface (single combined view + help screen) and is not quite stable: internal exception use triggers segfaults. Next up: fill in some of the gaping holes in design, documentation and code.
Third pre-alpha release 0.0-3 out, changes in logras(1). Fixed segfault, added some help text, command aliases, ^/$ command, -delay option, etc. Next up: more stuff from the to-do list.
Fourth pre-alpha release 0.0-4 out, minor changes in logras(1): more manual text, welcome screen, doc comments, view title line. Multi-log mode broken in logras for now. Next up: fix that.
Fifth pre-alpha release 0.0-5 out, minor changes in logras(1): fixed multi-log, added colors, better ncurses init.
Next I want to add some low-prio polish (shell escape, fold labels, continuation marks, compact-label option), before going back to the semi-hard parts (adding item-count based commands, keeping the item cache trimmed, rebuild line cache on format change without junking fold cache, reading config from file) and the really interesting parts (adding search, memmap-mode, expansion file cache, multiple views, non-ASCII text). The last category may come after a 0.1-1 (alpha) release.
Sixth pre-alpha release 0.0-6 out. Did halfway complete rewrite of error message outlet (next revision should complete that), necessary before further progress is possible.
Last edit: tinco 2015-06-10
Seventh pre-alpha release 0.0-7 out. Error message outlet almost complete; added lograw option --line (fol label), more doc. Not much progress on the issues listed two posts ago.
Eighth pre-alpha release 0.0-8 out, just minor tweaks: directory args, option -Z, some edge cases.
Some delay while I try to figure out how to handle non-ASCII text. Not sure how ncursesw handles combining chars, RTOL marks, double vs. single width glyphs, etc.