XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

LumaTunnel

【WinUI】LumaTunnel 是一个面向个人多设备的 Windows 代理系统。客户端在本机提供 HTTP/HTTPS CONNECT 与 SOCKS5 TCP 代理,并通过一个受信任 TLS 证书保护的 WSS 会话,将多个 TCP 流复用到自建 Windows Server 节点。

公开
关注 0 Fork 0 Star 0
UTF-8
namespace LumaTunnel.Client.Utilities;

internal static class AppLog
{
    private static readonly object s_gate = new();
    private static string? s_path;

    public static void Initialize(string directory)
    {
        Directory.CreateDirectory(directory);
        s_path = Path.Combine(directory, $"lumatunnel-{DateTime.Now:yyyyMMdd-HHmmss}.log");
        foreach (var old in Directory.GetFiles(directory, "lumatunnel-*.log").OrderByDescending(static item => item, StringComparer.OrdinalIgnoreCase).Skip(10))
            File.Delete(old);
        Write("INFO", "Client logging initialized.");
    }

    public static void Write(string level, string message, Exception? exception = null)
    {
        var path = s_path;
        if (path is null) return;
        var safeMessage = message.Replace("\r", " ", StringComparison.Ordinal).Replace("\n", " ", StringComparison.Ordinal);
        var line = $"{DateTimeOffset.Now:O} [{level}] {safeMessage}{(exception is null ? string.Empty : " | " + exception.GetType().Name)}{Environment.NewLine}";
        lock (s_gate) File.AppendAllText(path, line, System.Text.Encoding.UTF8);
    }
}