Skip to content
2 changes: 2 additions & 0 deletions TODOs.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
Add Copilot Instruction txt
Add Copilot HELP md for description what it does
6 changes: 3 additions & 3 deletions src/CsvColumnizer/CsvColumnizer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ public string[] GetColumnNames ()
if (_isValidCsv)
{
var i = 0;
foreach (CsvColumn column in _columnList)
foreach (var column in _columnList)
{
names[i++] = column.Name;
}
Expand Down Expand Up @@ -156,7 +156,7 @@ public void Selected (ILogLineColumnizerCallback callback)
if (_isValidCsv) // see PreProcessLine()
{
_columnList.Clear();
ILogLine line = _config.HasFieldNames ? _firstLine : callback.GetLogLine(0);
var line = _config.HasFieldNames ? _firstLine : callback.GetLogLine(0);

if (line != null)
{
Expand Down Expand Up @@ -241,7 +241,7 @@ public void LoadConfig (string configDir)

public Priority GetPriority (string fileName, IEnumerable<ILogLine> samples)
{
Priority result = Priority.NotSupport;
var result = Priority.NotSupport;

if (fileName.EndsWith("csv", StringComparison.OrdinalIgnoreCase))
{
Expand Down
2 changes: 1 addition & 1 deletion src/FlashIconHighlighter/FlashIconPlugin.cs
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ internal class FlashIconPlugin : IKeywordAction

public void Execute (string keyword, string param, ILogExpertCallback callback, ILogLineColumnizer columnizer)
{
FormCollection openForms = Application.OpenForms;
var openForms = Application.OpenForms;
foreach (Form form in openForms)
{
if (form.TopLevel && form.Name.Equals("LogTabWindow", StringComparison.OrdinalIgnoreCase) && form.Text.Contains(callback.GetFileName(), StringComparison.Ordinal))
Expand Down
8 changes: 4 additions & 4 deletions src/GlassfishColumnizer/GlassfishColumnizer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ public IColumnizedLogLine SplitLine (ILogLineColumnizerCallback callback, ILogLi

var temp = line.FullLine;

Column[] columns = Column.CreateColumns(COLUMN_COUNT, cLogLine);
var columns = Column.CreateColumns(COLUMN_COUNT, cLogLine);
cLogLine.ColumnValues = columns.Select(a => a as IColumn).ToArray();

// delete '[#|' and '|#]'
Expand All @@ -100,7 +100,7 @@ public IColumnizedLogLine SplitLine (ILogLineColumnizerCallback callback, ILogLi
{
try
{
DateTime dateTime = GetTimestamp(callback, line);
var dateTime = GetTimestamp(callback, line);
if (dateTime == DateTime.MinValue)
{
columns[1].FullValue = temp;
Expand All @@ -114,7 +114,7 @@ public IColumnizedLogLine SplitLine (ILogLineColumnizerCallback callback, ILogLi
columns[0].FullValue = "n/a";
}

Column timestmp = columns[0];
var timestmp = columns[0];

string[] cols;
cols = temp.Split(trimChars, COLUMN_COUNT, StringSplitOptions.None);
Expand Down Expand Up @@ -180,7 +180,7 @@ public DateTime GetTimestamp (ILogLineColumnizerCallback callback, ILogLine logL
try
{
// convert glassfish timestamp into a readable format:
if (DateTime.TryParseExact(value, DATETIME_FORMAT, cultureInfo, DateTimeStyles.None, out DateTime timestamp))
if (DateTime.TryParseExact(value, DATETIME_FORMAT, cultureInfo, DateTimeStyles.None, out var timestamp))
{
return timestamp.AddMilliseconds(timeOffset);
}
Expand Down
27 changes: 12 additions & 15 deletions src/JsonColumnizer/JsonColumnizer.cs
Original file line number Diff line number Diff line change
@@ -1,7 +1,3 @@
using System;
using System.Collections.Generic;
using System.Linq;

using LogExpert;

using Newtonsoft.Json;
Expand All @@ -12,7 +8,7 @@
/// <summary>
/// This Columnizer can parse JSON files.
/// </summary>
public class JsonColumnizer : ILogLineColumnizer, IInitColumnizer, IColumnizerPriority

Check warning on line 11 in src/JsonColumnizer/JsonColumnizer.cs

View workflow job for this annotation

GitHub Actions / Build Application - Debug

The type name JsonColumnizer conflicts in whole or in part with the namespace name 'JsonColumnizer'. Change either name to eliminate the conflict. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1724)
{
#region Properties

Expand All @@ -31,11 +27,11 @@
ColumnList.Clear();
ColumnSet.Clear();

ILogLine line = callback.GetLogLine(0);
var line = callback.GetLogLine(0);

Check warning on line 30 in src/JsonColumnizer/JsonColumnizer.cs

View workflow job for this annotation

GitHub Actions / Build Application - Debug

In externally visible method 'void JsonColumnizer.Selected(ILogLineColumnizerCallback callback)', validate parameter 'callback' is non-null before using it. If appropriate, throw an 'ArgumentNullException' when the argument is 'null'. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1062)

if (line != null)
{
JObject json = ParseJson(line);
var json = ParseJson(line);
if (json != null)
{
var fieldCount = json.Properties().Count();
Expand Down Expand Up @@ -87,7 +83,7 @@
{
var names = new string[GetColumnCount()];
var i = 0;
foreach (JsonColumn column in ColumnList)
foreach (var column in ColumnList)
{
names[i++] = column.Name;
}
Expand All @@ -97,7 +93,7 @@

public virtual IColumnizedLogLine SplitLine (ILogLineColumnizerCallback callback, ILogLine line)
{
JObject json = ParseJson(line);
var json = ParseJson(line);

if (json != null)
{
Expand All @@ -106,9 +102,9 @@

var cLogLine = new ColumnizedLogLine { LogLine = line };

Column[] columns = Column.CreateColumns(ColumnList.Count, cLogLine);
var columns = Column.CreateColumns(ColumnList.Count, cLogLine);

columns.Last().FullValue = line.FullLine;

Check warning on line 107 in src/JsonColumnizer/JsonColumnizer.cs

View workflow job for this annotation

GitHub Actions / Build Application - Debug

In externally visible method 'IColumnizedLogLine JsonColumnizer.SplitLine(ILogLineColumnizerCallback callback, ILogLine line)', validate parameter 'line' is non-null before using it. If appropriate, throw an 'ArgumentNullException' when the argument is 'null'. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1062)

cLogLine.ColumnValues = columns.Select(a => (IColumn)a).ToArray();

Expand Down Expand Up @@ -142,8 +138,8 @@

public virtual Priority GetPriority (string fileName, IEnumerable<ILogLine> samples)
{
Priority result = Priority.NotSupport;
var result = Priority.NotSupport;
if (fileName.EndsWith("json", StringComparison.OrdinalIgnoreCase))

Check warning on line 142 in src/JsonColumnizer/JsonColumnizer.cs

View workflow job for this annotation

GitHub Actions / Build Application - Debug

In externally visible method 'Priority JsonColumnizer.GetPriority(string fileName, IEnumerable<ILogLine> samples)', validate parameter 'fileName' is non-null before using it. If appropriate, throw an 'ArgumentNullException' when the argument is 'null'. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1062)
{
result = Priority.WellSupport;
}
Expand All @@ -157,13 +153,14 @@

protected static JObject ParseJson (ILogLine line)
{
return JsonConvert.DeserializeObject<JObject>(line.FullLine, new JsonSerializerSettings()

Check warning on line 156 in src/JsonColumnizer/JsonColumnizer.cs

View workflow job for this annotation

GitHub Actions / Build Application - Debug

In externally visible method 'JObject JsonColumnizer.ParseJson(ILogLine line)', validate parameter 'line' is non-null before using it. If appropriate, throw an 'ArgumentNullException' when the argument is 'null'. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1062)
{
Error = (sender, args) => { args.ErrorContext.Handled = true; } //We ignore the error and handle the null value
//We ignore the error and handle the null value
Error = (sender, args) => args.ErrorContext.Handled = true
});
}

public class ColumnWithName : Column

Check warning on line 163 in src/JsonColumnizer/JsonColumnizer.cs

View workflow job for this annotation

GitHub Actions / Build Application - Debug

Do not nest type ColumnWithName. Alternatively, change its accessibility so that it is not externally visible. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1034)
{
public string ColumnName { get; set; }
}
Expand All @@ -177,9 +174,9 @@
{
var cLogLine = new ColumnizedLogLine { LogLine = line };

var columns = json.Properties().Select(property => new ColumnWithName { FullValue = property.Value.ToString(), ColumnName = property.Name.ToString(), Parent = cLogLine }).ToList();

Check warning on line 177 in src/JsonColumnizer/JsonColumnizer.cs

View workflow job for this annotation

GitHub Actions / Build Application - Debug

In externally visible method 'IColumnizedLogLine JsonColumnizer.SplitJsonLine(ILogLine line, JObject json)', validate parameter 'json' is non-null before using it. If appropriate, throw an 'ArgumentNullException' when the argument is 'null'. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1062)

foreach (ColumnWithName jsonColumn in columns)
foreach (var jsonColumn in columns)
{
// When find new column in a log line, add a new column in the end of the list.
if (!ColumnSet.Contains(jsonColumn.ColumnName))
Expand All @@ -195,13 +192,13 @@
}

//
// Always rearrage the order of all json fields within a line to follow the sequence of columnNameList.
// Always rearrange the order of all json fields within a line to follow the sequence of columnNameList.
// This will make sure the log line displayed correct even the order of json fields changed.
//
List<IColumn> returnColumns = [];
foreach (JsonColumn column in ColumnList)
foreach (var column in ColumnList)
{
ColumnWithName existingColumn = columns.Find(x => x.ColumnName == column.Name);
var existingColumn = columns.Find(x => x.ColumnName == column.Name);
if (existingColumn != null)
{
returnColumns.Add(new Column() { FullValue = existingColumn.FullValue, Parent = cLogLine });
Expand Down
6 changes: 3 additions & 3 deletions src/JsonCompactColumnizer/JsonCompactColumnizer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ public override void Selected (ILogLineColumnizerCallback callback)

public override Priority GetPriority (string fileName, IEnumerable<ILogLine> samples)
{
Priority result = Priority.NotSupport;
var result = Priority.NotSupport;
if (fileName.EndsWith("json", StringComparison.OrdinalIgnoreCase))
{
result = Priority.WellSupport;
Expand All @@ -49,7 +49,7 @@ public override Priority GetPriority (string fileName, IEnumerable<ILogLine> sam
try
{
var line = samples.First();
JObject json = ParseJson(line);
var json = ParseJson(line);
if (json != null)
{
var columns = SplitJsonLine(samples.First(), json);
Expand Down Expand Up @@ -98,7 +98,7 @@ protected override IColumnizedLogLine SplitJsonLine (ILogLine line, JObject json
{
if (column.StartsWith('@'))
{
ColumnWithName existingColumn = columns.Find(x => x.ColumnName == column);
var existingColumn = columns.Find(x => x.ColumnName == column);

if (existingColumn != null)
{
Expand Down
18 changes: 11 additions & 7 deletions src/Log4jXmlColumnizer/Log4jXmlColumnizer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ public IColumnizedLogLine SplitLine (ILogLineColumnizerCallback callback, ILogLi
ColumnizedLogLine clogLine = new();
clogLine.LogLine = line;

Column[] columns = Column.CreateColumns(COLUMN_COUNT, clogLine);
var columns = Column.CreateColumns(COLUMN_COUNT, clogLine);

// If the line is too short (i.e. does not follow the format for this columnizer) return the whole line content
// in colum 8 (the log message column). Date and time column will be left blank.
Expand All @@ -94,7 +94,7 @@ public IColumnizedLogLine SplitLine (ILogLineColumnizerCallback callback, ILogLi
{
try
{
DateTime dateTime = GetTimestamp(callback, line);
var dateTime = GetTimestamp(callback, line);

if (dateTime == DateTime.MinValue)
{
Expand All @@ -109,7 +109,7 @@ public IColumnizedLogLine SplitLine (ILogLineColumnizerCallback callback, ILogLi
columns[0].FullValue = "n/a";
}

Column timestmp = columns[0];
var timestmp = columns[0];

string[] cols;
cols = line.FullLine.Split(trimChars, COLUMN_COUNT, StringSplitOptions.None);
Expand Down Expand Up @@ -137,7 +137,7 @@ public IColumnizedLogLine SplitLine (ILogLineColumnizerCallback callback, ILogLi
}
}

Column[] filteredColumns = MapColumns(columns);
var filteredColumns = MapColumns(columns);

clogLine.ColumnValues = filteredColumns.Select(a => a as IColumn).ToArray();

Expand Down Expand Up @@ -174,6 +174,7 @@ public DateTime GetTimestamp (ILogLineColumnizerCallback callback, ILogLine line
{
return DateTime.MinValue;
}

var value = line.FullLine.Substring(0, endIndex);

try
Expand All @@ -189,6 +190,7 @@ public DateTime GetTimestamp (ILogLineColumnizerCallback callback, ILogLine line
{
dateTime = dateTime.ToLocalTime();
}

return dateTime.AddMilliseconds(_timeOffset);
}
else
Expand Down Expand Up @@ -264,11 +266,12 @@ public void LoadConfig (string configDir)

public Priority GetPriority (string fileName, IEnumerable<ILogLine> samples)
{
Priority result = Priority.NotSupport;
var result = Priority.NotSupport;
if (fileName.EndsWith("xml", StringComparison.OrdinalIgnoreCase))
{
result = Priority.CanSupport;
}

return result;
}

Expand All @@ -287,18 +290,19 @@ private Column[] MapColumns (Column[] cols)
{
List<Column> output = [];
var index = 0;
foreach (Log4jColumnEntry entry in _config.ColumnList)
foreach (var entry in _config.ColumnList)
{
if (entry.Visible)
{
Column column = cols[index];
var column = cols[index];
output.Add(column);

if (entry.MaxLen > 0 && column.FullValue.Length > entry.MaxLen)
{
column.FullValue = column.FullValue[^entry.MaxLen..];
}
}

index++;
}

Expand Down
4 changes: 2 additions & 2 deletions src/Log4jXmlColumnizer/Log4jXmlColumnizerConfig.cs
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ public int ActiveColumnCount
get
{
var count = 0;
foreach (Log4jColumnEntry entry in ColumnList)
foreach (var entry in ColumnList)
{
if (entry.Visible)
{
Expand All @@ -47,7 +47,7 @@ public string[] ActiveColumnNames
{
var names = new string[ActiveColumnCount];
var index = 0;
foreach (Log4jColumnEntry entry in ColumnList)
foreach (var entry in ColumnList)
{
if (entry.Visible)
{
Expand Down
5 changes: 3 additions & 2 deletions src/Log4jXmlColumnizer/Log4jXmlColumnizerConfigDlg.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
using Log4jXmlColumnizer;
using Log4jXmlColumnizer;

using System;
using System.Drawing;
Expand Down Expand Up @@ -39,7 +39,7 @@ private void FillListBox()
var nameColumn = (DataGridViewTextBoxColumn)columnGridView.Columns[1];
var lenColumn = (DataGridViewTextBoxColumn)columnGridView.Columns[2];

foreach (Log4jColumnEntry entry in _config.ColumnList)
foreach (var entry in _config.ColumnList)
{
DataGridViewRow row = new();
row.Cells.Add(new DataGridViewCheckBoxCell());
Expand Down Expand Up @@ -76,6 +76,7 @@ private void OkButton_Click(object sender, EventArgs e)
_config.ColumnList[i].MaxLen = 0;
}
}

_config.LocalTimestamps = localTimeCheckBox.Checked;
}

Expand Down
7 changes: 4 additions & 3 deletions src/LogExpert.Core/Classes/Bookmark/BookmarkDataProvider.cs
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ public void ShiftBookmarks (int offset)
{
SortedList<int, Entities.Bookmark> newBookmarkList = [];

foreach (Entities.Bookmark bookmark in BookmarkList.Values)
foreach (var bookmark in BookmarkList.Values)
{
var line = bookmark.LineNum - offset;
if (line >= 0)
Expand All @@ -102,7 +102,7 @@ public void ShiftBookmarks (int offset)

public int FindPrevBookmarkIndex (int lineNum)
{
IList<Entities.Bookmark> values = BookmarkList.Values;
var values = BookmarkList.Values;
for (var i = BookmarkList.Count - 1; i >= 0; --i)
{
if (values[i].LineNum <= lineNum)
Expand All @@ -116,14 +116,15 @@ public int FindPrevBookmarkIndex (int lineNum)

public int FindNextBookmarkIndex (int lineNum)
{
IList<Entities.Bookmark> values = BookmarkList.Values;
var values = BookmarkList.Values;
for (var i = 0; i < BookmarkList.Count; ++i)
{
if (values[i].LineNum >= lineNum)
{
return i;
}
}

return 0;
}

Expand Down
6 changes: 3 additions & 3 deletions src/LogExpert.Core/Classes/Columnizer/ClfColumnizer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ public int GetTimeOffset ()

public DateTime GetTimestamp (ILogLineColumnizerCallback callback, ILogLine line)
{
IColumnizedLogLine cols = SplitLine(callback, line);
var cols = SplitLine(callback, line);
if (cols == null || cols.ColumnValues.Length < 8)
{
return DateTime.MinValue;
Expand Down Expand Up @@ -140,8 +140,8 @@ public IColumnizedLogLine SplitLine (ILogLineColumnizerCallback callback, ILogLi

if (_lineRegex.IsMatch(temp))
{
Match match = _lineRegex.Match(temp);
GroupCollection groups = match.Groups;
var match = _lineRegex.Match(temp);
var groups = match.Groups;
if (groups.Count == 10)
{
columns[0].FullValue = groups[1].Value;
Expand Down
Loading
Loading