Skip to content

Commit

Permalink
chore: drop phase from logger output (#9387)
Browse files Browse the repository at this point in the history
* chore: drop Phrase from output

* fix tests
  • Loading branch information
yufeih authored Nov 7, 2023
1 parent 1d7b96c commit fc06a3b
Show file tree
Hide file tree
Showing 21 changed files with 121 additions and 240 deletions.
1 change: 0 additions & 1 deletion src/Docfx.Common/Loggers/ILogItem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ public interface ILogItem
{
LogLevel LogLevel { get; }
string Message { get; }
string Phase { get; }
string File { get; }
string Line { get; }
string Code { get; }
Expand Down
6 changes: 1 addition & 5 deletions src/Docfx.Common/Loggers/Logger.cs
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,6 @@ public static void Log(LogLevel level, string message, string phase = null, stri
LogLevel = level,
Message = message,
Code = code,
Phase = phase ?? LoggerPhaseScope.GetPhaseName(),
});
}

Expand All @@ -107,7 +106,6 @@ public static ILogItem GetLogItem(LogLevel level, string message, string phase =
LogLevel = level,
Message = message,
Code = code,
Phase = phase ?? LoggerPhaseScope.GetPhaseName(),
};
}

Expand Down Expand Up @@ -172,7 +170,7 @@ public static void PrintSummary()
ConsoleUtility.WriteLine($" {_errorCount} error(s)\n", _errorCount > 0 ? ConsoleColor.Red : ConsoleColor.White);
}

private class LogItem : ILogItem
private class LogItem : ILogItem
{
public string File { get; set; }

Expand All @@ -182,8 +180,6 @@ private class LogItem : ILogItem

public string Message { get; set; }

public string Phase { get; set; }

public string Code { get; set; }
}
}
6 changes: 0 additions & 6 deletions src/Docfx.Common/Loggers/ReportLogListener.cs
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@ public void WriteLine(ILogItem item)

var level = item.LogLevel;
var message = item.Message;
var phase = item.Phase;
var file = item.File;
var line = item.Line;
if (level < LogLevelThreshold) return;
Expand All @@ -41,7 +40,6 @@ public void WriteLine(ILogItem item)
{
Severity = GetSeverity(level),
Message = message,
Source = phase,
File = TransformFile(file),
Line = line,
DateTime = DateTime.UtcNow,
Expand Down Expand Up @@ -105,10 +103,6 @@ public class ReportItem
[JsonPropertyName("message")]
public string Message { get; set; }

[JsonProperty("source")]
[JsonPropertyName("source")]
public string Source { get; set; }

[JsonProperty("file")]
[JsonPropertyName("file")]
public string File { get; set; }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -218,32 +218,24 @@ public void ProcessMrefWithInvalidCrossReferenceShouldWarn()
files.Add(DocumentType.Article, new[] { "TestData/mref/System.String.yml" }, "TestData/");
files.Add(DocumentType.Overwrite, new[] { "TestData/overwrite/mref.overwrite.invalid.ref.md" });

var listener = TestLoggerListener.CreateLoggerListenerWithPhaseStartFilter(nameof(ProcessMrefWithInvalidCrossReferenceShouldWarn), LogLevel.Info);
try
{
Logger.RegisterListener(listener);
using var listener = new TestListenerScope(LogLevel.Info);

using (new LoggerPhaseScope(nameof(ProcessMrefWithInvalidCrossReferenceShouldWarn)))
{
BuildDocument(files);
}

var warnings = listener.GetItemsByLogLevel(LogLevel.Warning);
Assert.Single(warnings);
var warning = warnings.Single();
Assert.Equal("2 invalid cross reference(s) \"<xref:invalidXref1>\", \"<xref:invalidXref2>\".", warning.Message);
Assert.Equal("TestData/mref/System.String.yml", warning.File);

var infos = listener.GetItemsByLogLevel(LogLevel.Info).Where(i => i.Message.Contains("Details for invalid cross reference(s)")).ToList();
Assert.Single(infos);
Assert.Equal("Details for invalid cross reference(s): \"<xref:invalidXref1>\" in line 6, \"<xref:invalidXref2>\" in line 8", infos[0].Message);
Assert.Equal("TestData/overwrite/mref.overwrite.invalid.ref.md", infos[0].File);
Assert.Null(infos[0].Line);
}
finally
using (new LoggerPhaseScope(nameof(ProcessMrefWithInvalidCrossReferenceShouldWarn)))
{
Logger.UnregisterListener(listener);
BuildDocument(files);
}

var warnings = listener.GetItemsByLogLevel(LogLevel.Warning);
Assert.Single(warnings);
var warning = warnings.Single();
Assert.Equal("2 invalid cross reference(s) \"<xref:invalidXref1>\", \"<xref:invalidXref2>\".", warning.Message);
Assert.Equal("TestData/mref/System.String.yml", warning.File);

var infos = listener.GetItemsByLogLevel(LogLevel.Info).Where(i => i.Message.Contains("Details for invalid cross reference(s)")).ToList();
Assert.Single(infos);
Assert.Equal("Details for invalid cross reference(s): \"<xref:invalidXref1>\" in line 6, \"<xref:invalidXref2>\" in line 8", infos[0].Message);
Assert.Equal("TestData/overwrite/mref.overwrite.invalid.ref.md", infos[0].File);
Assert.Null(infos[0].Line);
}

[Fact]
Expand Down Expand Up @@ -308,29 +300,21 @@ public void LoadArticleWithEmptyFileShouldWarnAndReturnNull()
var file = new FileAndType(Directory.GetCurrentDirectory(), fileWithNoContent, DocumentType.Article);
var processor = new ManagedReferenceDocumentProcessor();

var listener = TestLoggerListener.CreateLoggerListenerWithPhaseStartFilter(nameof(LoadArticleWithEmptyFileShouldWarnAndReturnNull), LogLevel.Info);
try
{
Logger.RegisterListener(listener);
using var listener = new TestListenerScope();

FileModel actualFileModel;
using (new LoggerPhaseScope(nameof(LoadArticleWithEmptyFileShouldWarnAndReturnNull)))
{
actualFileModel = processor.Load(file, null);
}

var warnings = listener.GetItemsByLogLevel(LogLevel.Warning);
Assert.Single(warnings);
var warning = warnings.Single();
Assert.Equal("Please add `YamlMime` as the first line of file, e.g.: `### YamlMime:ManagedReference`, otherwise the file will be not treated as ManagedReference source file in near future.", warning.Message);
Assert.Equal(fileWithNoContent, warning.File);

Assert.Null(actualFileModel);
}
finally
FileModel actualFileModel;
using (new LoggerPhaseScope(nameof(LoadArticleWithEmptyFileShouldWarnAndReturnNull)))
{
Logger.UnregisterListener(listener);
actualFileModel = processor.Load(file, null);
}

var warnings = listener.GetItemsByLogLevel(LogLevel.Warning);
Assert.Single(warnings);
var warning = warnings.Single();
Assert.Equal("Please add `YamlMime` as the first line of file, e.g.: `### YamlMime:ManagedReference`, otherwise the file will be not treated as ManagedReference source file in near future.", warning.Message);
Assert.Equal(fileWithNoContent, warning.File);

Assert.Null(actualFileModel);
}

private void BuildDocument(FileCollection files)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ namespace Docfx.Build.OverwriteDocuments.Tests;

public class OverwriteDocumentModelCreatorTest
{
private readonly TestLoggerListener _listener = TestLoggerListener.CreateLoggerListenerWithPhaseEqualFilter("overwrite_document_model_creator");
private readonly TestLoggerListener _listener = new();

[Fact]
public void YamlCodeBlockTest()
Expand Down
81 changes: 37 additions & 44 deletions test/Docfx.Build.RestApi.Tests/RestApiDocumentProcessorTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -282,54 +282,47 @@ public void ProcessSwaggerWithSimpleOverwriteShouldSucceed()
[Fact]
public void ProcessSwaggerWithInvalidLinksOverwriteShouldSucceedWithWarning()
{
const string phaseName = "ProcessSwaggerWithInvalidLinksOverwriteShouldSucceedWithWarning";
var listener = TestLoggerListener.CreateLoggerListenerWithPhaseStartFilter(phaseName);
Logger.RegisterListener(listener);
using var listener = new TestListenerScope();

using (new LoggerPhaseScope(phaseName))
{
var files = new FileCollection(_defaultFiles);
files.Add(DocumentType.Article, new[] { "TestData/swagger/tag_swagger2.json" }, "TestData/");
files.Add(DocumentType.Overwrite, new[] { "TestData/overwrite/rest.overwrite.invalid.links.first.md" });
files.Add(DocumentType.Overwrite, new[] { "TestData/overwrite/rest.overwrite.invalid.links.second.md" });
BuildDocument(files);
var files = new FileCollection(_defaultFiles);
files.Add(DocumentType.Article, new[] { "TestData/swagger/tag_swagger2.json" }, "TestData/");
files.Add(DocumentType.Overwrite, new[] { "TestData/overwrite/rest.overwrite.invalid.links.first.md" });
files.Add(DocumentType.Overwrite, new[] { "TestData/overwrite/rest.overwrite.invalid.links.second.md" });
BuildDocument(files);

Assert.Equal(7, listener.Items.Count); // Additional warning for "There is no template processing document type(s): RestApi"
Assert.Equal(7, listener.Items.Count); // Additional warning for "There is no template processing document type(s): RestApi"

var outputRawModelPath = GetRawModelFilePath("contacts.json");
Assert.True(File.Exists(outputRawModelPath));
var model = JsonUtility.Deserialize<RestApiRootItemViewModel>(outputRawModelPath);

var warningsForLinkA = listener.Items.Where(i => i.Message == "Invalid file link:(~/TestData/overwrite/a.md).").ToList();
Assert.Equal(
"<p sourcefile=\"TestData/overwrite/rest.overwrite.invalid.links.first.md\" sourcestartlinenumber=\"13\">Remarks content <a href=\"b.md\" sourcefile=\"TestData/overwrite/rest.overwrite.invalid.links.first.md\" sourcestartlinenumber=\"13\">remarks</a></p>",
model.Remarks.Trim());
Assert.Equal("6", warningsForLinkA.Single(i => i.File == "TestData/overwrite/rest.overwrite.invalid.links.first.md").Line);

Assert.Equal(
"<p sourcefile=\"TestData/overwrite/rest.overwrite.invalid.links.first.md\" sourcestartlinenumber=\"6\">Summary content <a href=\"a.md\" sourcefile=\"TestData/overwrite/rest.overwrite.invalid.links.first.md\" sourcestartlinenumber=\"6\">summary</a></p>",
model.Summary.Trim());
var summaryLink = listener.Items.Single(i => i.Message == "Invalid file link:(~/TestData/overwrite/b.md).");
Assert.Equal("TestData/overwrite/rest.overwrite.invalid.links.first.md", summaryLink.File);

var warningsForLinkAForSecond = warningsForLinkA.Where(i => i.File == "TestData/overwrite/rest.overwrite.invalid.links.second.md").ToList();
Assert.Equal(
"<p sourcefile=\"TestData/overwrite/rest.overwrite.invalid.links.second.md\" sourcestartlinenumber=\"5\">Conceptual content <a href=\"a.md\" sourcefile=\"TestData/overwrite/rest.overwrite.invalid.links.second.md\" sourcestartlinenumber=\"5\">Conceptual</a></p>\n<p sourcefile=\"TestData/overwrite/rest.overwrite.invalid.links.second.md\" sourcestartlinenumber=\"7\"><a href=\"a.md\" sourcefile=\"TestData/overwrite/rest.overwrite.invalid.links.second.md\" sourcestartlinenumber=\"7\">Conceptual</a></p>",
model.Conceptual.Trim());
Assert.Equal(1, warningsForLinkAForSecond.Count(i => i.Line == "5"));
Assert.Equal(1, warningsForLinkAForSecond.Count(i => i.Line == "7"));

var outputTagRawModelPath = GetRawModelFilePath("tag.json");
Assert.True(File.Exists(outputTagRawModelPath));
var tagModel = JsonUtility.Deserialize<RestApiRootItemViewModel>(outputTagRawModelPath);

Assert.Equal(
"<p sourcefile=\"TestData/overwrite/rest.overwrite.invalid.links.second.md\" sourcestartlinenumber=\"13\">Another uid content <a href=\"a.md\" sourcefile=\"TestData/overwrite/rest.overwrite.invalid.links.second.md\" sourcestartlinenumber=\"13\">Another</a></p>",
tagModel.Conceptual.Trim());
Assert.Equal(1, warningsForLinkAForSecond.Count(i => i.Line == "13"));
}
var outputRawModelPath = GetRawModelFilePath("contacts.json");
Assert.True(File.Exists(outputRawModelPath));
var model = JsonUtility.Deserialize<RestApiRootItemViewModel>(outputRawModelPath);

Logger.UnregisterListener(listener);
var warningsForLinkA = listener.Items.Where(i => i.Message == "Invalid file link:(~/TestData/overwrite/a.md).").ToList();
Assert.Equal(
"<p sourcefile=\"TestData/overwrite/rest.overwrite.invalid.links.first.md\" sourcestartlinenumber=\"13\">Remarks content <a href=\"b.md\" sourcefile=\"TestData/overwrite/rest.overwrite.invalid.links.first.md\" sourcestartlinenumber=\"13\">remarks</a></p>",
model.Remarks.Trim());
Assert.Equal("6", warningsForLinkA.Single(i => i.File == "TestData/overwrite/rest.overwrite.invalid.links.first.md").Line);

Assert.Equal(
"<p sourcefile=\"TestData/overwrite/rest.overwrite.invalid.links.first.md\" sourcestartlinenumber=\"6\">Summary content <a href=\"a.md\" sourcefile=\"TestData/overwrite/rest.overwrite.invalid.links.first.md\" sourcestartlinenumber=\"6\">summary</a></p>",
model.Summary.Trim());
var summaryLink = listener.Items.Single(i => i.Message == "Invalid file link:(~/TestData/overwrite/b.md).");
Assert.Equal("TestData/overwrite/rest.overwrite.invalid.links.first.md", summaryLink.File);

var warningsForLinkAForSecond = warningsForLinkA.Where(i => i.File == "TestData/overwrite/rest.overwrite.invalid.links.second.md").ToList();
Assert.Equal(
"<p sourcefile=\"TestData/overwrite/rest.overwrite.invalid.links.second.md\" sourcestartlinenumber=\"5\">Conceptual content <a href=\"a.md\" sourcefile=\"TestData/overwrite/rest.overwrite.invalid.links.second.md\" sourcestartlinenumber=\"5\">Conceptual</a></p>\n<p sourcefile=\"TestData/overwrite/rest.overwrite.invalid.links.second.md\" sourcestartlinenumber=\"7\"><a href=\"a.md\" sourcefile=\"TestData/overwrite/rest.overwrite.invalid.links.second.md\" sourcestartlinenumber=\"7\">Conceptual</a></p>",
model.Conceptual.Trim());
Assert.Equal(1, warningsForLinkAForSecond.Count(i => i.Line == "5"));
Assert.Equal(1, warningsForLinkAForSecond.Count(i => i.Line == "7"));

var outputTagRawModelPath = GetRawModelFilePath("tag.json");
Assert.True(File.Exists(outputTagRawModelPath));
var tagModel = JsonUtility.Deserialize<RestApiRootItemViewModel>(outputTagRawModelPath);

Assert.Equal(
"<p sourcefile=\"TestData/overwrite/rest.overwrite.invalid.links.second.md\" sourcestartlinenumber=\"13\">Another uid content <a href=\"a.md\" sourcefile=\"TestData/overwrite/rest.overwrite.invalid.links.second.md\" sourcestartlinenumber=\"13\">Another</a></p>",
tagModel.Conceptual.Trim());
Assert.Equal(1, warningsForLinkAForSecond.Count(i => i.Line == "13"));
}

[Fact]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ public class MarkdownFragmentsValidationTest : TestBase
private TemplateManager _templateManager;
private FileCollection _files;

private TestLoggerListener _listener;
private TestLoggerListener _listener = new();
private string _rawModelFilePath;

private const string RawModelFileExtension = ".raw.json";
Expand All @@ -38,7 +38,6 @@ public void OverwriteUnEditableTest()

_templateManager = new TemplateManager(new List<string> { "template" }, null, _templateFolder);

_listener = TestLoggerListener.CreateLoggerListenerWithPhaseEqualFilter(null);
_rawModelFilePath = GetRawModelFilePath("FragmentsValidation.yml");

var schemaFile = CreateFile("template/schemas/fragments.validation.schema.json", File.ReadAllText("TestData/schemas/fragments.validation.schema.json"), _templateFolder);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ public class MergeMarkdownFragmentsTest : TestBase
private readonly TemplateManager _templateManager;
private readonly FileCollection _files;

private readonly TestLoggerListener _listener;
private readonly TestLoggerListener _listener = new();
private readonly string _rawModelFilePath;

private const string RawModelFileExtension = ".raw.json";
Expand All @@ -35,7 +35,6 @@ public MergeMarkdownFragmentsTest()

_templateManager = new TemplateManager(new List<string> { "template" }, null, _templateFolder);

_listener = TestLoggerListener.CreateLoggerListenerWithPhaseEqualFilter(null);
_rawModelFilePath = GetRawModelFilePath("Suppressions.yml");

var schemaFile = CreateFile("template/schemas/rest.mixed.schema.json", File.ReadAllText("TestData/schemas/rest.mixed.schema.json"), _templateFolder);
Expand Down Expand Up @@ -319,7 +318,7 @@ overwrite in contents block
[Fact]
public void TestFragmentsWithIncremental()
{
using var listener = new TestListenerScope(nameof(TestFragmentsWithIncremental));
using var listener = new TestListenerScope();
// first build
using (new LoggerPhaseScope("FirstBuild"))
{
Expand Down
14 changes: 7 additions & 7 deletions test/Docfx.Build.SchemaDriven.Tests/SchemaDrivenProcessorTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ public SchemaDrivenProcessorTest()
[Fact]
public void TestRef()
{
using var listener = new TestListenerScope("TestRef");
using var listener = new TestListenerScope();
var schemaFile = CreateFile("template/schemas/general.test.schema.json", File.ReadAllText("TestData/schemas/general.test.schema.json"), _templateFolder);
var templateFile = CreateFile("template/General.html.tmpl", @"{{#items}}
{{#aggregatedExceptions}}
Expand Down Expand Up @@ -122,7 +122,7 @@ public void TestRef()
[Fact]
public void TestXrefResolver()
{
using var listener = new TestListenerScope("TestXrefResolver");
using var listener = new TestListenerScope();
// arrange
var schemaFile = CreateFile("template/schemas/mref.test.schema.json", File.ReadAllText("TestData/schemas/mref.test.schema.json"), _templateFolder);
var templateXref = CreateFile(
Expand Down Expand Up @@ -172,7 +172,7 @@ public void TestXrefResolver()
[Fact]
public void TestXrefResolverShouldWarnWithEmptyUidReference()
{
using var listener = new TestListenerScope(nameof(TestXrefResolverShouldWarnWithEmptyUidReference));
using var listener = new TestListenerScope();
// arrange
var schemaFile = CreateFile("template/schemas/mref.test.schema.json", File.ReadAllText("TestData/schemas/mref.test.schema.json"), _templateFolder);
var inputFileName = "inputs/CatLibrary.ICat.yml";
Expand All @@ -191,7 +191,7 @@ public void TestXrefResolverShouldWarnWithEmptyUidReference()
[Fact]
public void TestValidMetadataReferenceWithIncremental()
{
using var listener = new TestListenerScope("TestGeneralFeaturesInSDP");
using var listener = new TestListenerScope();
var schemaFile = CreateFile("template/schemas/mta.reference.test.schema.json", @"
{
""$schema"": ""http://dotnet.github.io/docfx/schemas/v1.0/schema.json#"",
Expand Down Expand Up @@ -288,7 +288,7 @@ public void TestValidMetadataReferenceWithIncremental()
public void TestInvalidSchemaDefinition()
{
// Json.NET schema has limitation of 1000 calls per hour
using var listener = new TestListenerScope("TestInvalidMetadataReference");
using var listener = new TestListenerScope();
var schemaFile = CreateFile("template/schemas/mta.reference.test.schema.json", @"
{
""$schema"": ""http://dotnet.github.io/docfx/schemas/v1.0/schema.json#"",
Expand Down Expand Up @@ -319,7 +319,7 @@ public void TestInvalidSchemaDefinition()
[Fact]
public void TestInvalidObjectAgainstSchema()
{
using var listener = new TestListenerScope("TestInvalidMetadataReference");
using var listener = new TestListenerScope();
var schemaFile = CreateFile("template/schemas/mta.reference.test.schema.json", @"
{
""$schema"": ""http://dotnet.github.io/docfx/schemas/v1.0/schema.json#"",
Expand Down Expand Up @@ -351,7 +351,7 @@ public void TestInvalidObjectAgainstSchema()
[Fact]
public void TestInvalidMetadataReference()
{
using var listener = new TestListenerScope("TestGeneralFeaturesInSDP");
using var listener = new TestListenerScope();
var schemaFile = CreateFile("template/schemas/mta.reference.test.schema.json", @"
{
""$schema"": ""http://dotnet.github.io/docfx/schemas/v1.0/schema.json#"",
Expand Down
Loading

0 comments on commit fc06a3b

Please sign in to comment.