@{ ViewData["Title"] = "SMAPI log parser"; IDictionary contentPacks = Model.ParsedLog?.Mods ?.GroupBy(mod => mod.ContentPackFor) .Where(group => group.Key != null) .ToDictionary(group => group.Key, group => group.ToArray()); Regex slugInvalidCharPattern = new Regex("[^a-z0-9]", RegexOptions.Compiled | RegexOptions.IgnoreCase); string GetSlug(string modName) { return slugInvalidCharPattern.Replace(modName, ""); } } @using System.Text.RegularExpressions @using Newtonsoft.Json @using StardewModdingAPI.Web.Framework.LogParsing.Models @model StardewModdingAPI.Web.ViewModels.LogParserModel @section Head { } @********* ** Intro *********@

This page lets you upload, view, and share a SMAPI log to help troubleshoot mod issues.

@if (Model.ParsedLog?.IsValid == true) {

Parsed log

Game info:
SMAPI version: @Model.ParsedLog.ApiVersion
Game version: @Model.ParsedLog.GameVersion
Platform: @Model.ParsedLog.OperatingSystem
Mods path: @Model.ParsedLog.ModPath
Log started: @Model.ParsedLog.Timestamp.UtcDateTime.ToString("yyyy-MM-dd HH:mm") UTC ({{localTimeStarted}} your time)

@foreach (var mod in Model.ParsedLog.Mods.Where(p => p.ContentPackFor == null)) { @if (mod.Errors == 0) { } else if (mod.Errors == 1) { } else { } }
Installed mods: click any mod to filter show all hide all
@mod.Name @if (contentPacks != null && contentPacks.TryGetValue(mod.Name, out LogModInfo[] contentPackList)) {
@foreach (var contentPack in contentPackList) { + @contentPack.Name @contentPack.Version
}
}
@mod.Version @mod.Authorno errors@mod.Errors error@mod.Errors errors
Filter messages: TRACE | DEBUG | INFO | ALERT | WARN | ERROR
@foreach (var message in Model.ParsedLog.Messages) { string levelStr = message.Level.ToString().ToLower(); if (message.Repeated > 0) { } }
@message.Time @message.Level.ToString().ToUpper() @message.Mod @message.Text
repeats [@message.Repeated] times.
} else if (Model.ParsedLog?.IsValid == false) {

Parsed log

We couldn't parse that file, but you can still share the link.

Error details: @Model.ParsedLog.Error

Raw log

@Model.ParsedLog.RawText
}