Add the experimental ability to dump stats (result of command "show stats all") to file OpenSimStats.log every 5 seconds.
This can currently only be activated with the console command "debug stats record start". Off by default. Records to file OpenSimStats.log for simulator and RobustStats.log for ROBUSTTeleportWork
parent
ac198068ab
commit
4c2f6de8e4
|
@ -81,6 +81,8 @@ namespace OpenSim.Framework.Monitoring
|
|||
+ "More than one name can be given separated by spaces.\n"
|
||||
+ "THIS STATS FACILITY IS EXPERIMENTAL AND DOES NOT YET CONTAIN ALL STATS",
|
||||
HandleShowStatsCommand);
|
||||
|
||||
StatsLogger.RegisterConsoleCommands(console);
|
||||
}
|
||||
|
||||
public static void HandleShowStatsCommand(string module, string[] cmd)
|
||||
|
@ -145,29 +147,55 @@ namespace OpenSim.Framework.Monitoring
|
|||
}
|
||||
}
|
||||
|
||||
public static List<string> GetAllStatsReports()
|
||||
{
|
||||
List<string> reports = new List<string>();
|
||||
|
||||
foreach (var category in RegisteredStats.Values)
|
||||
reports.AddRange(GetCategoryStatsReports(category));
|
||||
|
||||
return reports;
|
||||
}
|
||||
|
||||
private static void OutputAllStatsToConsole(ICommandConsole con)
|
||||
{
|
||||
foreach (var category in RegisteredStats.Values)
|
||||
{
|
||||
OutputCategoryStatsToConsole(con, category);
|
||||
}
|
||||
foreach (string report in GetAllStatsReports())
|
||||
con.Output(report);
|
||||
}
|
||||
|
||||
private static List<string> GetCategoryStatsReports(
|
||||
SortedDictionary<string, SortedDictionary<string, Stat>> category)
|
||||
{
|
||||
List<string> reports = new List<string>();
|
||||
|
||||
foreach (var container in category.Values)
|
||||
reports.AddRange(GetContainerStatsReports(container));
|
||||
|
||||
return reports;
|
||||
}
|
||||
|
||||
private static void OutputCategoryStatsToConsole(
|
||||
ICommandConsole con, SortedDictionary<string, SortedDictionary<string, Stat>> category)
|
||||
{
|
||||
foreach (var container in category.Values)
|
||||
{
|
||||
OutputContainerStatsToConsole(con, container);
|
||||
}
|
||||
foreach (string report in GetCategoryStatsReports(category))
|
||||
con.Output(report);
|
||||
}
|
||||
|
||||
private static void OutputContainerStatsToConsole( ICommandConsole con, SortedDictionary<string, Stat> container)
|
||||
private static List<string> GetContainerStatsReports(SortedDictionary<string, Stat> container)
|
||||
{
|
||||
List<string> reports = new List<string>();
|
||||
|
||||
foreach (Stat stat in container.Values)
|
||||
{
|
||||
con.Output(stat.ToConsoleString());
|
||||
}
|
||||
reports.Add(stat.ToConsoleString());
|
||||
|
||||
return reports;
|
||||
}
|
||||
|
||||
private static void OutputContainerStatsToConsole(
|
||||
ICommandConsole con, SortedDictionary<string, Stat> container)
|
||||
{
|
||||
foreach (string report in GetContainerStatsReports(container))
|
||||
con.Output(report);
|
||||
}
|
||||
|
||||
// Creates an OSDMap of the format:
|
||||
|
|
|
@ -11,22 +11,56 @@
|
|||
</appSettings>
|
||||
<log4net>
|
||||
<appender name="Console" type="OpenSim.Framework.Console.OpenSimAppender, OpenSim.Framework.Console">
|
||||
<filter type="log4net.Filter.LoggerMatchFilter">
|
||||
<loggerToMatch value="special"/>
|
||||
<acceptOnMatch value="false"/>
|
||||
</filter>
|
||||
<layout type="log4net.Layout.PatternLayout">
|
||||
<conversionPattern value="%date{HH:mm:ss} - %message%newline" />
|
||||
<conversionPattern value="%date{HH:mm:ss} - %message" />
|
||||
<!-- console log with milliseconds. Useful for debugging -->
|
||||
<!-- <conversionPattern value="%date{HH:mm:ss.fff} - %message" /> -->
|
||||
</layout>
|
||||
</appender>
|
||||
|
||||
<appender name="LogFileAppender" type="log4net.Appender.FileAppender">
|
||||
<file value="OpenSim.32BitLaunch.log" />
|
||||
<appendToFile value="true" />
|
||||
<filter type="log4net.Filter.LoggerMatchFilter">
|
||||
<loggerToMatch value="special"/>
|
||||
<acceptOnMatch value="false"/>
|
||||
</filter>
|
||||
<layout type="log4net.Layout.PatternLayout">
|
||||
<conversionPattern value="%date %-5level - %logger %message%newline" />
|
||||
</layout>
|
||||
</appender>
|
||||
|
||||
<appender name="StatsLogFileAppender" type="log4net.Appender.FileAppender">
|
||||
<file value="OpenSimStats.log"/>
|
||||
<appendToFile value="true" />
|
||||
<layout type="log4net.Layout.PatternLayout">
|
||||
<conversionPattern value="%date - %message%newline" />
|
||||
</layout>
|
||||
</appender>
|
||||
|
||||
<root>
|
||||
<level value="DEBUG" />
|
||||
<appender-ref ref="Console" />
|
||||
<appender-ref ref="LogFileAppender" />
|
||||
</root>
|
||||
|
||||
<!-- Independently control logging level for XEngine -->
|
||||
<logger name="OpenSim.Region.ScriptEngine.XEngine">
|
||||
<level value="INFO"/>
|
||||
</logger>
|
||||
|
||||
<!-- Independently control logging level for per region module loading -->
|
||||
<logger name="OpenSim.ApplicationPlugins.RegionModulesController.RegionModulesControllerPlugin">
|
||||
<level value="INFO"/>
|
||||
</logger>
|
||||
|
||||
<!-- used for stats recording -->
|
||||
<logger name="special.StatsLogger">
|
||||
<appender-ref ref="StatsLogFileAppender"/>
|
||||
</logger>
|
||||
</log4net>
|
||||
</configuration>
|
||||
|
|
|
@ -11,6 +11,10 @@
|
|||
</appSettings>
|
||||
<log4net>
|
||||
<appender name="Console" type="OpenSim.Framework.Console.OpenSimAppender, OpenSim.Framework.Console">
|
||||
<filter type="log4net.Filter.LoggerMatchFilter">
|
||||
<loggerToMatch value="special"/>
|
||||
<acceptOnMatch value="false"/>
|
||||
</filter>
|
||||
<layout type="log4net.Layout.PatternLayout">
|
||||
<conversionPattern value="%date{HH:mm:ss} - %message" />
|
||||
<!-- console log with milliseconds. Useful for debugging -->
|
||||
|
@ -21,11 +25,23 @@
|
|||
<appender name="LogFileAppender" type="log4net.Appender.FileAppender">
|
||||
<file value="OpenSim.log" />
|
||||
<appendToFile value="true" />
|
||||
<filter type="log4net.Filter.LoggerMatchFilter">
|
||||
<loggerToMatch value="special"/>
|
||||
<acceptOnMatch value="false"/>
|
||||
</filter>
|
||||
<layout type="log4net.Layout.PatternLayout">
|
||||
<conversionPattern value="%date %-5level - %logger %message%newline" />
|
||||
</layout>
|
||||
</appender>
|
||||
|
||||
<appender name="StatsLogFileAppender" type="log4net.Appender.FileAppender">
|
||||
<file value="OpenSimStats.log"/>
|
||||
<appendToFile value="true" />
|
||||
<layout type="log4net.Layout.PatternLayout">
|
||||
<conversionPattern value="%date - %message%newline" />
|
||||
</layout>
|
||||
</appender>
|
||||
|
||||
<root>
|
||||
<level value="DEBUG" />
|
||||
<appender-ref ref="Console" />
|
||||
|
@ -42,5 +58,10 @@
|
|||
<level value="INFO"/>
|
||||
</logger>
|
||||
|
||||
<!-- used for stats recording -->
|
||||
<logger name="special.StatsLogger">
|
||||
<appender-ref ref="StatsLogFileAppender"/>
|
||||
</logger>
|
||||
|
||||
</log4net>
|
||||
</configuration>
|
||||
|
|
|
@ -11,22 +11,44 @@
|
|||
</appSettings>
|
||||
<log4net>
|
||||
<appender name="Console" type="OpenSim.Framework.Console.OpenSimAppender, OpenSim.Framework.Console">
|
||||
<filter type="log4net.Filter.LoggerMatchFilter">
|
||||
<loggerToMatch value="special"/>
|
||||
<acceptOnMatch value="false"/>
|
||||
</filter>
|
||||
<layout type="log4net.Layout.PatternLayout">
|
||||
<conversionPattern value="%date{HH:mm:ss} - %message%newline" />
|
||||
</layout>
|
||||
</appender>
|
||||
|
||||
<appender name="LogFileAppender" type="log4net.Appender.FileAppender">
|
||||
<file value="Robust.32BitLaunch.log" />
|
||||
<appendToFile value="true" />
|
||||
<filter type="log4net.Filter.LoggerMatchFilter">
|
||||
<loggerToMatch value="special"/>
|
||||
<acceptOnMatch value="false"/>
|
||||
</filter>
|
||||
<layout type="log4net.Layout.PatternLayout">
|
||||
<conversionPattern value="%date %-5level - %logger %message%newline" />
|
||||
</layout>
|
||||
</appender>
|
||||
|
||||
<appender name="StatsLogFileAppender" type="log4net.Appender.FileAppender">
|
||||
<file value="RobustStats.log"/>
|
||||
<appendToFile value="true" />
|
||||
<layout type="log4net.Layout.PatternLayout">
|
||||
<conversionPattern value="%date - %message%newline" />
|
||||
</layout>
|
||||
</appender>
|
||||
|
||||
<root>
|
||||
<level value="DEBUG" />
|
||||
<appender-ref ref="Console" />
|
||||
<appender-ref ref="LogFileAppender" />
|
||||
</root>
|
||||
|
||||
<!-- used for stats recording -->
|
||||
<logger name="special.StatsLogger">
|
||||
<appender-ref ref="StatsLogFileAppender"/>
|
||||
</logger>
|
||||
</log4net>
|
||||
</configuration>
|
||||
|
|
|
@ -11,6 +11,10 @@
|
|||
</appSettings>
|
||||
<log4net>
|
||||
<appender name="Console" type="OpenSim.Framework.Console.OpenSimAppender, OpenSim.Framework.Console">
|
||||
<filter type="log4net.Filter.LoggerMatchFilter">
|
||||
<loggerToMatch value="special"/>
|
||||
<acceptOnMatch value="false"/>
|
||||
</filter>
|
||||
<layout type="log4net.Layout.PatternLayout">
|
||||
<conversionPattern value="%date{HH:mm:ss} - %message%newline" />
|
||||
</layout>
|
||||
|
@ -19,15 +23,32 @@
|
|||
<appender name="LogFileAppender" type="log4net.Appender.FileAppender">
|
||||
<file value="Robust.log" />
|
||||
<appendToFile value="true" />
|
||||
<filter type="log4net.Filter.LoggerMatchFilter">
|
||||
<loggerToMatch value="special"/>
|
||||
<acceptOnMatch value="false"/>
|
||||
</filter>
|
||||
<layout type="log4net.Layout.PatternLayout">
|
||||
<conversionPattern value="%date %-5level - %logger %message%newline" />
|
||||
</layout>
|
||||
</appender>
|
||||
|
||||
<appender name="StatsLogFileAppender" type="log4net.Appender.FileAppender">
|
||||
<file value="RobustStats.log"/>
|
||||
<appendToFile value="true" />
|
||||
<layout type="log4net.Layout.PatternLayout">
|
||||
<conversionPattern value="%date - %message%newline" />
|
||||
</layout>
|
||||
</appender>
|
||||
|
||||
<root>
|
||||
<level value="DEBUG" />
|
||||
<appender-ref ref="Console" />
|
||||
<appender-ref ref="LogFileAppender" />
|
||||
</root>
|
||||
|
||||
<!-- used for stats recording -->
|
||||
<logger name="special.StatsLogger">
|
||||
<appender-ref ref="StatsLogFileAppender"/>
|
||||
</logger>
|
||||
</log4net>
|
||||
</configuration>
|
||||
|
|
Loading…
Reference in New Issue