Files
gtav-src/tools_ng/lib/pipeline/log/erb/buildlog.erb
T
2025-09-29 00:52:08 +02:00

181 lines
4.7 KiB
Plaintext
Executable File

<!--
buildlog.erb
Ruby ERB HTML Template for Build Log
Author:: David Muir <david.muir@rockstarnorth.com>
Date:: 1 April 2008
-->
<%
# This constant array defines the HTML colour codes for the HTML Formatter.
# Ensure that they meet the same as the custom levels - although note the
# implicit first level of 'ALL'. These can be HTML colour code strings or
# hex colours in the form '#RRGGBB'.
HTML_FORMATTER_COLOURS = {
'All' => 'white',
'Debug' => 'lightblue',
'Info' => 'white',
'Warn' => 'orange',
'Error' => 'red',
'Fatal' => 'red'
}
# Translator events array pre-processing.
name = @log_name
is_root = @is_root_buildlog
events = @events
error_anchor = 1
warning_anchor = 1
errors = []
warnings = []
debug = []
events.each do |event|
errors << event if 'Error' == event.level or 'Fatal' == event.level
warnings << event if 'Warn' == event.level
debug << event if 'Debug' == event.level
end
%>
<P>
Hostname: <%= Socket.gethostname %><BR />
</P>
<H3>Summary</H3>
<!--
Summary Results Table
-->
<TABLE>
<TR>
<TD CLASS="borderless">Number of errors:</TD>
<TD CLASS="borderless"><%= errors.size.to_s %></TD>
</TR>
<TR>
<TD CLASS="borderless">Number of warnings:</TD>
<TD CLASS="borderless"><%= warnings.size.to_s %></TD>
</TR>
<TR>
<TD CLASS="borderless">Total number of messages:</TD>
<TD CLASS="borderless"><%= events.size.to_s %></TD>
</TR>
</TABLE>
<!--
Links to children
-->
<r:if_children>
<H3>Task Logs</H3>
<r:children:each>
<r:link /><BR />
</r:children:each>
</r:if_children>
<!--
Errors Log Table
-->
<% if errors.size > 0 %>
<H3>Errors</H3>
<TABLE>
<TR>
<TH>Date</TH>
<TH>File</TH>
<TH>Line</TH>
<TH>Function</TH>
<TH>Message</TH>
</TR>
<% errors.each do |event| %>
<TR>
<TD><%= event.datetime.strftime( '%Y-%m-%d %H:%M:%S' ) %></TD>
<% if nil != event.trace_info then %>
<TD><%= event.trace_info.filename %></TD>
<TD><%= event.trace_info.line %></TD>
<TD><%= event.trace_info.method_name %></TD>
<% else %>
<TD>N/A</TD>
<TD>N/A</TD>
<TD>N/A</TD>
<% end %>
<TD><%= event.message %></TD>
</TR>
<% end %>
</TABLE>
<% end %>
<!-- End of errors table -->
<!--
Warnings Log Table
-->
<% if warnings.size > 0 %>
<H3>Warnings</H3>
<TABLE>
<TR>
<TH>Date</TH>
<TH>File</TH>
<TH>Line</TH>
<TH>Function</TH>
<TH>Message</TH>
</TR>
<% warnings.each do |event| %>
<TR>
<TD><%= event.datetime.strftime( '%Y-%m-%d %H:%M:%S' ) %></TD>
<% if nil != event.trace_info then %>
<TD><%= event.trace_info.filename %></TD>
<TD><%= event.trace_info.line %></TD>
<TD><%= event.trace_info.method_name %></TD>
<% else %>
<TD>N/A</TD>
<TD>N/A</TD>
<TD>N/A</TD>
<% end %>
<TD><%= event.message %></TD>
</TR>
<% end %>
</TABLE>
<% end %>
<!-- End of warnings table -->
<H3>Sequential Log</H3>
<!--
Main Log Results Table
-->
<TABLE>
<TR>
<TH>Date</TH>
<TH>File</TH>
<TH>Line</TH>
<TH>Function</TH>
<TH>Type</TH>
<TH>Message</TH>
</TR>
<% events.each do |event| %>
<TR>
<TD><%= event.datetime.strftime( '%Y-%m-%d %H:%M:%S' ) %></TD>
<% if nil != event.trace_info then %>
<TD><%= event.trace_info.filename %></TD>
<TD><%= event.trace_info.line %></TD>
<TD><%= event.trace_info.method_name %></TD>
<% else %>
<TD>N/A</TD>
<TD>N/A</TD>
<TD>N/A</TD>
<% end %>
<% if 'Error' == event.level or 'Fatal' == event.level then %>
<TD CLASS='error'><%= event.level %></TD>
<TD><%= event.message %></TD>
<% error_anchor += 1 %>
<% elsif 'Warn' == event.level %>
<TD CLASS='warning'><%= event.level %></TD>
<TD><%= event.message %></TD>
<% warning_anchor += 1 %>
<% elsif 'Debug' == event.level %>
<TD CLASS='debug'><%= event.level %></TD>
<TD><%= event.message %></TD>
<% else %>
<TD><%= event.level %></TD>
<TD><%= event.message %></TD>
<% end %>
</TR>
<% end %>
</TABLE>
<P>
Log generated at: <%= DateTime.now().strftime( '%Y-%m-%d %H:%M:%S' ) %>
</P>
<!-- End of buildlog.erb -->