LogViewer for HWINFO is available !

TomWoB

Well-Known Member
Introduction
Sometimes I use HWINFO together with FRAPS to run the in games included benchmark to optimize the settings of my graphic adapter! It's the only tool combination I know which logs FPS reliable. But analyzing the logs can be tricky. Of course, you can open a log-file in Excel, but then you have to do a lot of steps until you get an useful diagram (and not everybody has an Excel license).

So ... I decided to implement a simple tool which shows diagrams of log files after "a few clicks":
  • it allows to illustrate HWINFO log data in several diagrams and
  • to compare multiple log-files side-by-side in one diagram !
ValleyBenchmark.png

User Guide (on YouTube)
The tool is very simple to use: no installation necessary, just start "GenericLogViewer.exe". At the top you can select
  • how many diagrams with
  • how many log-files
should be presented by the tool.

Open an HWINFO log file by clicking the "Open File" button, select application type "HWINFO", select a HWINFO log file and press "Open" (HWINFO log-files have typically the filename pattern: *.csv). After parsing the file, the logging duration of the file is shown and by default the "Timeline" diagram of the first log category. You can change the shown diagram with:
  • Timeline/Statisic RadioButton
  • Log Category ComboBox
  • Change all buttons (changes category in every diagram)
The Y-axis shows the values of the seleted Log Category in ComboBox (unit is within [..])
In upper left corner of every diagram you can find the minimum, average and maximum value of the corresponding curve(s).

If an opened file is still updated with logging-data by HWINFO, you can simple update/refresh it by clicking on the "Reload"-Button.

If there are too many different values on Y-axis in "Statistic" mode, the values are grouped into ranges. If this is the case, the following control is shown, which allows to increase of decrease the number of ranges (or to disable quantisation).

Quantisation.png

After opening all log files you can hide the file area by unmarking "Show file area" to get more space for diagrams.


New feature since version 2.1: Simple Mode
I added a "two columns" feature, which doubles the number of diagrams. But if you use "two columns" with a high "number of diagrams" the diagrams are very small. That's why I introduced the "Simple mode" which:
  • simplifies header and footer
  • decreases line thickness
Tip: use the "Tab"-key to toggle between 'Standard' and 'Simple' mode !


New feature since version 3.0: Time Window Definition
If you click the "Edit"-button in the file area, a new window will be opened to define Start- and End-time of a time window for the logfile (see user guide at the top of this window). It allows you
  • to show only a part of a single logfile or
  • to synchronize multiple logfiles
Attention: time window start-time is "normalized" to "00:00:00", otherwise synchronization of multiple log-files will not work !

Button description:
  • "Set": defines Start/End time of time window
  • "Reset": resets Start/End time to "file borders"
  • "Zoom": zooms into diagram with the actual defined Start/End times for fine-tuning (from Start-10% to End+10%). Remark: works only in case of Start/End is more then 10% from "file Start/End times")
  • "Cancel": closes window without any change
  • "Execute" ="Apply" in actual version: yes, take the actual defined Start/End times as the used time window for all diagrams !
TimeWindow.png


New features since version 4.0 (August 2018):
  • possibility to compare different categories of one file in one diagram
  • possibility to present diagrams in a "dark style"
If you have only file loaded, it's now possible to add up to two more ComboBoxes for category selection in any diagram. Addtional you can change the background color of the diagram section to black.

GenericLogViewer_4.0.jpg


New features since version 5.0 (July 2019):
  • MSI Afterburner Logs are now supported too (*.hml)
  • "Statistic"-diagram got many improvements (now it works as it should)
  • New diagram-type "Triple" implemented , which shows Minimum, Average and Maximum in a barchart
Triple-Diagram.jpg


New features since version 5.2 (November 2019):
  • Ability to load/save setups of LogViewer (see Post #94 for details)
  • Save Screenshot functionality
New features since version 5.4 (October 2020):
  • "Reload file" button can be configured to display only the "last x minutes" (see Post #104 for details)
New features since version 6.0 (May 2021):
  • Command Line Arguments
  • Drag & drop of files
  • "Change all" buttons with SMART-functionality
  • For details check this video on YouTube
New features since version 6.1 (July 2021):
  • Style your own Generic Log Viewer MainWindow ... if you like
  • Diagrams can now be "locked" (for "Change all" buttons with SMART-functionality)
  • Some new "Hot-Keys" are implemented
  • For details check Post #136
New features since version 6.2 (November 2021):
  • Selection of log-application via command-line-argument
  • Optional file "GenericLogViewer.cla" for better "Open with ..."
  • Adjustment of hot keys
  • All "value checks" are disabled (gone)
  • For details check Post #150
New features since version 6.3 (April 2022):
  • "Selfie-Mode" for better screenshots
  • Category ComboBoxes have now color-markers on the left side
  • Screenshot functionality improved
  • For details check Post #163
New features since version 6.4 (Mai 2022):
  • "Marker-Mode", which allows precise determination of every single log value
  • Added support of single concatenated header logfile
  • For details check Post #172
Requirements
  • Microsoft Windows
  • Microsoft Framework .NET 4.8 (Windows Update 1903 from April 2019)
  • no installation necessary, just start "GenericLogViewer.exe"

Download
SHA-1 hash: 2F19F0ABC093E495617B15663E1537D436643934
Download - GenericLogViewer - Version 6.4
 
Last edited:
The App is not working!
During the loading the csv there is an error. The error msg is "The string was not recognized as a valid DateTime"
I used the newest HWinfo both 32 and 64.

My system is Windows 7x64
 
Can you please upload the csv-file which was not working that I can have a look at it. Regards Tom
 
TomWoB said:
Can you please upload the csv-file which was not working that I can have a look at it. Regards Tom
Hi Tom,
I 'm getting the same error:

attachment.php


Here is my csv-file, generated from HWiNFO64 v4.22 on Windows Server 2008 R2 sp1
[attachment=727]

Regards//Rainer
 

Attachments

  • HWinfoLog130825-001.CSV
    27.1 KB · Views: 24
  • LogViewer-error.jpg
    LogViewer-error.jpg
    16.5 KB · Views: 883
Hi Ragge,

I tested your file on my PC and the tool is working fine with this file !

So, I assume the problem has something to do with the "culture settings" of our machines. Depending on this setting "a double number" has to look like
  • 5.0 or
  • 5,0
I check this already for numbers (log values) but not for date/time. I fixed this (hopefully) but I cannot test it on my machine. So before I do an official new version, can you do a re-test with the version I attach on this message. Download "GenericLogViewerTest.zip" from my public SkyDrive and test it ...

Thanks and please give me a feedback about the result ...
Tom

(SkyDrive-Link is not longer available, because official release is done, download link see first message of this thread)
 
Hi Tom,
Thanks for your help.

There is something wrong with the zip-file you attached. I can't open it.
Could you please re-post it.

My culture settings are swedish, decimal symbol: ","

//Rianer
 
Hi Ragge,

yes, you are right: the download-zip is invalid !
And it was not possible to upload another one which is working ...

So, please download it temporarly from my public SkyDrive:
(SkyDrive-Link is not longer available, because official release is done, download link see first message of this thread)
 
Hi Tom,
I did some testing with different region settings on Win 7. german, english(US) and swedish.
attachment.php

[attachment=738]
Results:
  • GenericLogViewer.exe version 1.2.0.0: works with region setting for german, but neither with english nor swedish.
  • GenericLogViewerTest.exe version 1.2.1.0 doesn't work with any of the 3 settings I tried.

Viele Grüsse :) //Rainer
 

Attachments

  • RegionSettings.jpg
    RegionSettings.jpg
    246.1 KB · Views: 883
Ragge,

thanks a lot for your detailed help! Good idea to play with the region settings (still wondering why I didn't have it).

But now it´s clear that the parsing of the date/time must be done a little bit more complex. Not really a problem, but need to be done and tested. I think I will have a fix for that in the next 3 days. Will inform you when there is a new version for download available.

Tom
 
Hi Ragge (and all others),

can you please do a re-test with my version 1.2.2 !
You can get it again from my public Skydrive:
(SkyDrive-Link is not longer available, because official release is done, download link see first message of this thread)

Hoping that the "region setting" problems are gone now ...
For all of you: please inform me about your test results, if possible, for the other supported application types too !

Thanks Tom
 
Hi Tom,
I did some short testing openin a HWiNFO csv-file on Win 7 and Win Server 2008 R2, tested different region settings: swedish, german, english, french, hebrew, russian ...

Works great, nice little program, thanx :)

One lite error: It can't open a csv-file when the file still is used by HWiNFO.
[attachment=741]
I can open the file using notepad, and even excel can import the file. Maybe your program is trying to open it read/write?

Greetings //Rainer
 

Attachments

  • LogViewerFileAccessError.jpg
    LogViewerFileAccessError.jpg
    25.6 KB · Views: 18
Tom, you should probably open the CSV with FILE_SHARE_READ flag.
Once it's fixed, I'll host the new version on the site too.
Thanks guys.
 
Hi all,

OK, release 1.3 is done !

It fixes the problems of the following two Error-Messages:
  • "The string was not recognized as a valid DateTime" (problem with region settings)
  • "The process cannot access the file ... because it is used by another process" (file can't be opened by tool during HWINFO is still logging)

@Ragge, Martin: thanks a lot for your support !
@All: have fun and enjoy the latest version ...

Download - GenericLogViewer - Version 1.3
 
New Version 2.0 available !

New features:
  • Reload-Button: to refresh active logging-files
  • arithmetic averages of all curves are shown
  • quantisation can be disabled if wanted

Why new major version 2?
I did a lot of internal changes and code is now completly verified by Unit-Tests.

Download - GenericLogViewer - Version 2.0
 
Hi TomWoB. LogViewer is great. I use it everytime for my system tests. Is it possible to add more features? :

* Edit timeline of curves. I mean cutting X-axis (trim start and end of log)
* Move complete curves left and right along X-axis.

Thanks for your efforts.
 
Hi katmai7,

thanks for your positive feedback and I try to answer your questions ...
  • Edit timeline of curves:
    yes, it should be possible to add a control which allows changing start- and end-point of a logfile (Remark: this control is available since version 3.0)
  • Move completly curves:
    no, this would not work in case of e.g. "can be moved live, directly with the mouse", because graphic library is too slow for that.
Some time ago I was also thinking about "adding new useful features". Especially in the area like you did, because "synchronising" multiple logfiles is the biggest problem during analysing diagrams with multiple curves. I have two use cases for analysing multiple logfiles:
  • checking new graphic driver: does the new driver really deliver 15% more performance as promised by NVIDIA ?
  • optimising graphic settings: trying different settings to find the optimum 90-100% GPU load working point
For this I run standardised Benchmarks (3DMark, Valley, ... or the benchmarks which are included in games).

So, why I didn't already add some "synchronise features" ?
  1. I think GenericLogViewer should be "a simple tool", that everybody can use and understand it within one minute -> adding more buttons or controls will be counterproductive regarding "a simple tool".
  2. I'm sure, most of the users are only watching single logfiles -> no synchronisation necessary
  3. now the biggest disadvantage for handling synchronisation or moving curves "within the tool": it is not persistent -> any time you compare new logs with old logs you have to adjust these settings again and again (boring)
Here is my proposal to synchronise multiple logfiles, like synchronised Valley benchmark screenshot above (first image in first post of this thread):
  1. start a stopwatch when you start logging
  2. start the benchmark (or whatever you want to check). This typically takes some time: start program, change some settings, run ...
  3. take a note (stopwatch time) when benchmark "really starts and finishes"
  4. after benchmark has finished: stop logging
  5. edit logfile and remove all loglines which are not part of benchmark period !
This is really simple, because logging tools like HWINFO have normally the time information in one of the "first columns" of a logline stored. E.g. benchmark "has really started" 40 seconds after starting logging and logging interval is 1000ms -> remove the first 40 loglines of the logfile (or remove a 40 second period based on the logged time information). Same procedure for end of benchmark: delete all loglines which are logged after end-time of benchmark (time noticed on stopwatch).

This is the way I got the logfiles of the Valley-benchmark above. And again: this change is persistent, you have to do this only ones. From now on you can use this file as a reference "directly after you open it in GenericLogViewer". Tipp: think about a useful filename for the changed logilfe, it must be clear under which circumstances it was created.

So, at the moment I don't see a benefit making the tool more complex. But who knows, I'm open for any kind of improvement, maybe there are other ideas around ... but please, think about KISS: keep it simple and stupid !

Remarks:
  • Logfiles typically contain a "header with static system or column information", which has nothing to do with dynamic logging data. These lines should be not removed.
  • You can only remove loglines at the begin or/and at the end of a logfile (not in the middle), because the time information of the still exisiting loglines doesn't change if you cut off something.
Example: "header with static system or column information" (do not remove)

Date,Time,"Physical Memory Load [%]","Core #0 Thread #0 Usage [%]",...

Example: "typical loglines" (can be removed)

4.11.2013,19:28:0.364,46.0,4.5,0.0,1.5,0.0,4.5,0...
4.11.2013,19:28:1.394,46.0,4.5,0.0,0.0,0.0,7.5,0...
4.11.2013,19:28:2.423,46.0,15.1,0.0,6.0,0.0,7.5,0...
4.11.2013,19:28:3.451,46.0,19.6,0.0,7.5,0.0,4.5,0...


Synchronised logfiles of Valley-benchmark above:
[attachment=834]
 

Attachments

  • Valley Benchmark (2 cycles) with different Anti Aliasing.zip
    43.6 KB · Views: 9
TomWoB thanks a lot for very useful informations.

I do the same thing - analyzing diagrams with multiple curves. And I have exactly the same problems with synchronization of different (start-stop) logs.

It"s true that we can edit *csv log file but it's still little bit "boring". I was thinking that move/trim method could be faster.
 
Back
Top