Ship your app. We'll tell you when it breaks.
KyotoTech Logger is a cloud logging service for .NET and Swift applications. End-to-end encrypted, real-time, plug-and-play.
This repository contains runnable sample projects that show you how to add structured cloud logging to your app in under 5 minutes.
| # | Sample | Platform | What it shows |
|---|---|---|---|
| 01 | dotnet/01-console-quickstart |
.NET 8+ console | The 30-second integration — init, log, upload |
| 02 | dotnet/02-aspnet-webapi |
ASP.NET Core | DI registration + global exception middleware |
| 03 | dotnet/03-worker-service |
.NET Worker | Background service with structured metadata |
| 04 | dotnet/04-maui-app |
.NET MAUI | Cross-platform mobile/desktop app |
| 05 | swift/01-cli-quickstart |
Swift CLI (macOS) | The 30-second Swift integration |
| 06 | swift/02-ios-app |
SwiftUI iOS | App lifecycle + user-action logging |
Each sample is self-contained and has its own README.
The Free plan is enough to try every sample here — no credit card required.
Go to logger.kyototech.co.jp and register. You'll land on an empty dashboard with a Free plan.
Email → you@example.com
Password → (anything meeting the strength rules)
Display name → Your Name
Organization → My Company
Check your inbox for the verification email and click the link.
In the dashboard, click Projects → + New Project.
Name → "My First Project"
Platform → pick whatever matches your app (console, web, mobile, …)
Open the project → API Keys tab → Generate New Key.
Name → "local-dev"
Environment → "development" (choose "production" for prod releases)
A key like ktlog_development_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6 appears once. Copy it now — you won't see it again. (You can always generate more.)
Free plan works without a license key — pass any string. If you've purchased a Developer/Professional/Enterprise plan, you'll receive a license key by email in the format TIER-XXXX-XXXX-XXXX-XXXX.
See docs/getting-started.md for a more detailed walkthrough including screenshots.
using KyotoTechLogger;
using KyotoTechLogger.Models;
using System.Reflection;
LogService.Initialize(
licenseKey: "FREE",
apiKey: Environment.GetEnvironmentVariable("KYOTOTECH_LOGGER_API_KEY")!,
serverUrl: "https://logger.kyototech.co.jp/api/v1/logs");
LogService.Instance.Log(
MethodBase.GetCurrentMethod(),
"Hello from my app!",
LogTypes.DeveloperLog);
await LogService.Instance.UploadLogsAsync();That's it. Open the dashboard, refresh — your log is there in real time.
import KyotoTechLogger
let apiKey = ProcessInfo.processInfo.environment["KYOTOTECH_LOGGER_API_KEY"]!
_ = await KyotoTechLogger.initialize(
licenseKey: "FREE",
apiKey: apiKey,
serverUrl: "https://logger.kyototech.co.jp/api/v1/logs")
KyotoTechLogger.shared.log("Hello from my app!", type: .developerLog)
_ = await KyotoTechLogger.shared.uploadLogs()- End-to-end encrypted — AES-256-GCM before data leaves your app. We cannot read your logs.
- Real-time dashboard — Logs appear via WebSocket as they are uploaded.
- No agent to deploy — Pure SDK, no daemon, no sidecar.
- Free to start — 50 logs/day, 1 project, forever.
See the plans page for team/retention tiers.
Sample code in this repository is licensed under the MIT License (see LICENSE). Use, fork, and adapt however you like.
The KyotoTechLogger NuGet package and KyotoTechLoggerSwift package are commercial SDKs — see their respective licenses.
- Docs: kyototech.jp/docs/logger
- Dashboard: logger.kyototech.co.jp
- Email: support@kyototech.co.jp
- Issues with these samples: open a GitHub issue on this repo