54 lines
1.6 KiB
C#
54 lines
1.6 KiB
C#
/*using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace TeamHobby.HobbyProjectGenerator.Logging
|
|
{
|
|
public enum LogLevel
|
|
{
|
|
Info, Debug, Warning, Error
|
|
}
|
|
|
|
public enum LogCategory
|
|
{
|
|
View, Business, Server, Data, Datastore
|
|
}
|
|
|
|
// LogEntry is a record type with init properties for each field
|
|
// ensures that log entries are immutable after initialization
|
|
public record LogEntry
|
|
{
|
|
public LogLevel level { get; init; }
|
|
public LogCategory category { get; init; }
|
|
public string user { get; init; }
|
|
public string description { get; init; }
|
|
public DateTime timestamp { get; init; }
|
|
|
|
|
|
// Constructor requireing only the description as an arg
|
|
// Assigns default values for LogLevel (Info), LogCategory (Server), user ("System"), and the UTC time at initialization for timestamp
|
|
public LogEntry(string description)
|
|
{
|
|
this.level = LogLevel.Info;
|
|
this.category = LogCategory.Server;
|
|
this.user = "System";
|
|
this.description = description;
|
|
this.timestamp = DateTime.UtcNow;
|
|
}
|
|
// Constructor with args for all fields except timestamp
|
|
// timestamp is always set to the UTC time at the time of initialization
|
|
public LogEntry(LogLevel level, string user, LogCategory category, string description)
|
|
{
|
|
this.level = level;
|
|
this.category = category;
|
|
this.user = user;
|
|
this.description = description;
|
|
this.timestamp = DateTime.UtcNow;
|
|
}
|
|
|
|
|
|
}
|
|
}
|