Modern, multi-tenant logging service built with .NET 9.0 and PostgreSQL. Secure, scalable logging with OAuth authentication, subscription tiers, and powerful search capabilities.
Logably is a comprehensive logging solution consisting of three components that work together to provide enterprise-grade logging capabilities.
Powerful command-line tool for searching and filtering logs with full-text search capabilities.
Serilog sink for .NET applications to send logs directly to the Logably platform.
Secure hosted logging service with free tier, web dashboard, and REST API access.
Enterprise-grade logging capabilities designed for modern .NET applications.
Complete tenant isolation with per-tenant data segregation and access control.
Secure authentication with OAuth 2.0 providers including Google, Microsoft, and GitHub.
Powerful CLI tool for searching logs with advanced filtering and query capabilities.
Configurable retention policies from 7 days to custom retention for enterprise needs.
Native Serilog sink for seamless integration with existing .NET applications.
Reliable, scalable PostgreSQL database for high-performance log storage and retrieval.
Comprehensive REST API for programmatic access to logs and system management.
Modern web interface for viewing, searching, and analyzing logs in real-time.
Install the CLI tool and Serilog sink to start sending logs to Logably.
using Serilog;
using Serilog.Sinks.Logably;
// Configure Serilog with Logably sink
Log.Logger = new LoggerConfiguration()
.WriteTo.Console()
.WriteTo.Logably(options =>
{
options.ApiKey = "your-api-key";
options.TenantId = "your-tenant-id";
options.Environment = "Production";
options.BatchSize = 100;
})
.CreateLogger();
var builder = WebApplication.CreateBuilder(args);
builder.Host.UseSerilog();
// Your app continues...
var app = builder.Build();
app.Run();
Powerful command-line interface for searching and analyzing your logs.
Choose the plan that fits your logging needs. Start free and scale as you grow.
Multiple ways to configure the Serilog sink for your application.
using Serilog;
using Serilog.Sinks.Logably;
// Basic Logably configuration
Log.Logger = new LoggerConfiguration()
.WriteTo.Logably(options =>
{
options.ApiKey = "lgb_1234567890abcdef";
options.TenantId = "my-company";
options.Environment = "Production";
})
.CreateLogger();
try
{
Log.Information("Application starting up");
var builder = WebApplication.CreateBuilder(args);
builder.Host.UseSerilog();
var app = builder.Build();
app.Run();
}
catch (Exception ex)
{
Log.Fatal(ex, "Application failed to start");
}
finally
{
Log.CloseAndFlush();
}
{
"Serilog": {
"Using": ["Serilog.Sinks.Console", "Serilog.Sinks.Logably"],
"MinimumLevel": {
"Default": "Information",
"Override": {
"Microsoft": "Warning",
"System": "Warning"
}
},
"WriteTo": [
{
"Name": "Console"
},
{
"Name": "Logably",
"Args": {
"apiKey": "lgb_1234567890abcdef",
"tenantId": "my-company",
"environment": "Production",
"batchSize": 100,
"batchPeriod": "00:00:05"
}
}
],
"Enrich": ["FromLogContext", "WithMachineName", "WithThreadId"]
}
}
using Serilog;
using Serilog.Sinks.Logably;
// Advanced configuration with all options
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Information()
.Enrich.FromLogContext()
.Enrich.WithMachineName()
.Enrich.WithProperty("Application", "MyApi")
.WriteTo.Console()
.WriteTo.Logably(options =>
{
// Required settings
options.ApiKey = Environment.GetEnvironmentVariable("LOGABLY_API_KEY");
options.TenantId = "my-company";
// Optional settings
options.Environment = builder.Environment.EnvironmentName;
options.ApplicationName = "MyApi";
options.BatchSize = 250;
options.BatchPeriod = TimeSpan.FromSeconds(10);
options.MinimumLogLevel = LogEventLevel.Information;
options.MaxRetries = 3;
options.RetryDelay = TimeSpan.FromSeconds(2);
// Custom properties
options.CustomProperties = new Dictionary<string, object>
{
["Version"] = "1.0.0",
["Region"] = "us-east-1"
};
})
.CreateLogger();
Get started with Logably today. Free tier available with no credit card required.