SPLog 1.0.1

There is a newer version of this package available.
See the version list below for details.
dotnet add package SPLog --version 1.0.1
                    
NuGet\Install-Package SPLog -Version 1.0.1
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="SPLog" Version="1.0.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="SPLog" Version="1.0.1" />
                    
Directory.Packages.props
<PackageReference Include="SPLog" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add SPLog --version 1.0.1
                    
#r "nuget: SPLog, 1.0.1"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package SPLog@1.0.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=SPLog&version=1.0.1
                    
Install as a Cake Addin
#tool nuget:?package=SPLog&version=1.0.1
                    
Install as a Cake Tool

SPLog

SPLog is a lightweight logging DLL focused on performance, simplicity, and practical file logging for .NET applications.

GitHub repository: https://github.com/cku3987/SPLog

Why SPLog

  • Simple API
  • Fast enough for high-volume application logging
  • File logging and console logging out of the box
  • External JSON configuration support
  • Exception logging support
  • Daily and hourly rolling
  • Append and CreateNew file conflict handling

Quick Start

using SPLog;

using var logger = SPLogFactory.Create(options =>
{
    options.Name = "Core";
    options.EnableConsole = true;
    options.EnableFile = true;
    options.FilePath = "logs";
});

logger.Information("application started");
logger.Warning("response delay detected");

try
{
    RunProcess();
}
catch (Exception ex)
{
    logger.Error(ex, "process failed");
}

External Configuration

using var logger = SPLogFactory.CreateFromJsonFile("config/splog.core.json");

Example JSON:

{
  "Name": "Core",
  "MinimumLevel": "Information",
  "EnableConsole": false,
  "EnableFile": true,
  "FilePath": "logs",
  "FileConflictMode": "Append",
  "FileRollingMode": "Hourly",
  "MaxFileSizeBytes": 52428800,
  "MaxRollingFiles": 500,
  "QueueCapacity": 8192,
  "BatchSize": 10,
  "FlushIntervalMs": 100,
  "FileBufferSize": 65536,
  "BlockWhenQueueFull": true
}

File Naming Behavior

  • FilePath = "logs" creates <Name>.log automatically
  • Relative paths are resolved from AppContext.BaseDirectory
  • Absolute paths are used as-is

Examples:

  • Daily + AppendCore_20260331.log
  • Daily + CreateNewCore_20260331.log, then Core_20260331_001.log
  • Hourly + CreateNewCore_20260331_13.log, then Core_20260331_13_001.log

Validation Projects

This repository also includes validation helpers:

  • SPLog.Tests Deterministic correctness checks
  • SPLog.StressRunner Stress, smoke, and long-run validation

Recommended commands:

dotnet build SPLog.sln -c Release -m:1
dotnet run --project SPLog.Tests\SPLog.Tests.csproj -c Release --no-build
dotnet run --project SPLog.StressRunner\SPLog.StressRunner.csproj -c Release -- --config codex\SPLog-StressRunner.sample.json

Documentation

  • English guide: docs/SPLog-Guide-EN.html
  • Korean guide: docs/SPLog-Guide-KO.html
  • Validation guide: codex/SPLog-Validation-Guide-EN.md
Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net8.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.2.1 118 5/19/2026
1.2.0 115 5/19/2026
1.1.1 116 4/21/2026
1.1.0 115 4/17/2026
1.0.2 118 3/31/2026
1.0.1 108 3/31/2026
1.0.0 114 3/23/2026