We are organizing the first ever ReactiveUI virtual conference, register and join us on September 19th!

Troubleshooting

Binary Logging

ReactiveUI uses the binary logger feature which was made available from msbuild v15.3 onwards to output all build events to a structured/binary log file.

You'll find reactiveui.binlog and eventgenerator.binlog in the project directory after your first compile. Install the MSBuild Structured Log Viewer and double-click on the .binlog to for a more productive troubleshooting experience. Please attach your .binlog when opening GitHub issues related to compilation.

Binary log advantages

  • Completeness - records the exact events in order they happened during the build. You can replay a binary log into other loggers to reconstruct full text logs. Pass the .binlog file to MSBuild.exe instead of a project/solution to replay the log as if the original build was happening.

  • Verbosity - binary logs capture more information than even the most diagnostic-level text logs. The binary logger turns on various MSBuild switches to output more information, such as task inputs and target outputs.

  • Faster builds - less overhead than a text log, can make builds significantly faster if other logs are disabled. They can be reconstructed later anyway if needed.

  • Smaller disk size - a binary log is much smaller in size than a corresponding diagnostic-level text log (10-20x or more). This can result in significant storage savings on CI servers.

  • Easier to read/analyze - text logs (especially from multi-processor builds) can become unwieldy, intertwined and hard to read. The viewer allows to collapse unneeded sections, as well as intelligent search.

  • Programmatic access - All information is easily accessible programmatically for tools such as analyzers (whereas you need to parse text logs yourself and it's hard without a clearly defined structure) A .NET API is available to load and query binary logs.

Read more about the new MSBuild binary log format (*.binlog)