tiny.Logger 8.0.0

dotnet add package tiny.Logger --version 8.0.0
NuGet\Install-Package tiny.Logger -Version 8.0.0
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="tiny.Logger" Version="8.0.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add tiny.Logger --version 8.0.0
#r "nuget: tiny.Logger, 8.0.0"
#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.
// Install tiny.Logger as a Cake Addin
#addin nuget:?package=tiny.Logger&version=8.0.0

// Install tiny.Logger as a Cake Tool
#tool nuget:?package=tiny.Logger&version=8.0.0

tiny.Logger

Most powerful, multithreaded file logger for high touch application written for .net

Build Status

Features

  • Thread safe file logger.
  • Log shipping based on size.
  • File Name support for custom formats
  • Safe execution handles.
  • .net framework is also supported.

Installation

Install-Package tiny.Logger

.net core / .net 5 Sample

Example 1

code example

public static IHostBuilder CreateHostBuilder(string[] args) =>
            Tiny.CreateDefaultBuilderAndTinyLogger(args).....

Example 2

code example

public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
                .ConfigureTinyLogger().....

to add console logger please pass true use. this is very useful in systemd linux environments

public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
                .ConfigureTinyLogger(true).....
Customization from appsettings.json
"Logging": {
    "LogLevel": {
      "Default": "Trace",
      "Microsoft": "Trace",
      "Microsoft.Hosting.Lifetime": "Trace"
    },
    "options": {
      "file": "MYLOG_$|DATE[dd_MMM_yyyy HH_mm]|$.log",  //<--- (1)
      "path":  "c:\\temp", //<--- (2)
      "size": 5242880 //<--- (3),
      "retention-duration": 30 // <--- (4)
    }
  },
  1. "file" ⇒ Name of file.
    • available options
      • $|DATE|$ = for date without format
      • $|DATE[FORMAT]|$ = customize format as per your need e.g. MYLOG_$|DATE[dd_MMM_yyyy HH_mm]|$.logMYLOG_DATE01_JAN_2021 10_45.log
  2. path: folder path for log file
    • available options
      • using environment variables support %temp%\logsC:\Users...\AppData\Local\Temp
  3. size
    • minimum is 1048576 (1MB) in case of smaller value than 1MB will be ignored.
    • if option is missing means disable log shipping based on size.
  4. retention duration in days
    • number greater than 0. this means, delete old log file whos age is grater than specified number.
    • if option is missing or 0 means do not clear old log files. .

.Net Framework Setup.

namespace Sample
{
    using tiny;
    using Microsoft.Extensions.Logging;

    class Program
    {
        static void Main(string[] args)
        {
            // first line of execution or before using logger....
            Extensions.ConfigureTinyLogger(@"c:\temp", MinLogLevel: LogLevel.Trace, ...);
            
            // Code to execute.
            
            var data = new Data() { Property1 = "Some value" };
            Extensions.LogInformation("First Log as information", data);
            
            // Code to execute.
            

Safe Executions

Example in .net core / .net 5

Use this option to wrap exuection with exception handling


       public int Sample1Sum(int i, int j)
       {
           int k = 0;
           _logger.ExecuteWithLog(() => { k = i + j; });
           return k;
       }

       public int Sample2Sum(int i, int j)
       {
           return _logger.ExecuteWithLog<int>(() => i + j);
       }

       public int Sample3Sum(int i, int j)
       {
           return _logger.ExecuteWithLog<int>(() => i/0 + j, defaultResult: 0);
       }

Example in .net framework
            Extensions.ILogger.ExecuteWithLog(() => 
            { 
                // code 
            });
ps: You can use Exception, for after execution deligates to perform operations based on your needs

License

MIT

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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (2)

Showing the top 2 NuGet packages that depend on tiny.Logger:

Package Downloads
tiny.WebApi

A Powerful WebApi written to ease up webapi development purely based on the configuration - supports MSSQL Server, PostgreSQL and Oracle databases.

tiny.ImageHelper

A library for modifying key attributes for EMF file. Supports Modifying Font Color Background Color Convert to Black and white Convert to gray scale

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
8.0.0 246 11/28/2023
6.0.6 135 10/6/2023
6.0.5 172 8/31/2023
6.0.4 1,106 11/24/2022
6.0.3 576 9/16/2022
6.0.2 959 8/4/2022
6.0.1 1,110 2/20/2022
6.0.0 483 12/25/2021
5.0.6 480 3/16/2021
5.0.5 408 3/12/2021
5.0.4.4 455 3/12/2021
5.0.4.3 429 2/26/2021
5.0.4.3-alpha 217 2/26/2021
5.0.4.2 436 2/24/2021
5.0.4.1 403 2/23/2021
5.0.4.1-alpha 297 2/23/2021
5.0.4 353 2/23/2021
5.0.3 396 2/23/2021
5.0.2 372 2/23/2021
5.0.1 374 2/22/2021
5.0.0 378 2/22/2021
1.0.3 391 2/21/2021
1.0.2 376 2/21/2021
1.0.0 356 2/20/2021
0.0.1-alpha 284 2/20/2021