internal void PrintStatistics() { if (!logger.IsInfo) { return; } var stats = Utils.EnumerableToString(workgroupDirectory.Values.OrderBy(wg => wg.Name), wg => string.Format("--{0}", wg.DumpStatus()), "\r\n"); if (stats.Length > 0) { logger.LogWithoutBulkingAndTruncating(Logger.Severity.Info, ErrorCode.SchedulerStatistics, "OrleansTaskScheduler.PrintStatistics(): RunQueue={0}, WorkItems={1}, Directory:\n{2}", RunQueue.Length, WorkItemGroupCount, stats); } }
private static void LogGrainTypesFound(TraceLogger logger, Dictionary<string, GrainTypeData> grainTypeData) { var sb = new StringBuilder(); sb.AppendLine(String.Format("Loaded grain type summary for {0} types: ", grainTypeData.Count)); foreach (var grainType in grainTypeData.Values.OrderBy(gtd => gtd.Type.FullName)) { // Skip system targets and Orleans grains var assemblyName = grainType.Type.Assembly.FullName.Split(',')[0]; if (!typeof(ISystemTarget).IsAssignableFrom(grainType.Type)) { int grainClassTypeCode = CodeGeneration.GrainInterfaceData.GetGrainClassTypeCode(grainType.Type); sb.AppendFormat("Grain class {0}.{1} [{2} (0x{3})] from {4}.dll implementing interfaces: ", grainType.Type.Namespace, TypeUtils.GetTemplatedName(grainType.Type), grainClassTypeCode, grainClassTypeCode.ToString("X"), assemblyName); var first = true; foreach (var iface in grainType.RemoteInterfaceTypes) { if (!first) sb.Append(", "); sb.Append(iface.Namespace).Append(".").Append(TypeUtils.GetTemplatedName(iface)); if (CodeGeneration.GrainInterfaceData.IsGrainType(iface)) { int ifaceTypeCode = CodeGeneration.GrainInterfaceData.GetGrainInterfaceId(iface); sb.AppendFormat(" [{0} (0x{1})]", ifaceTypeCode, ifaceTypeCode.ToString("X")); } first = false; } sb.AppendLine(); } } var report = sb.ToString(); logger.LogWithoutBulkingAndTruncating(Logger.Severity.Info, ErrorCode.Loader_GrainTypeFullList, report); }
private void Log(ErrorCode logCode, string format, params object[] args) { logger.LogWithoutBulkingAndTruncating(Logger.Severity.Info, logCode, format, args); }