mirror of
https://github.com/jetzig-framework/jetzig.git
synced 2025-05-14 14:06:08 +00:00
Add null logger
Silence logs completely when `null` logger is active. Add pool size/timeout environment variable configuration for JetQuery.
This commit is contained in:
parent
bed91b2131
commit
2dd2f7ae74
@ -15,8 +15,8 @@
|
||||
.hash = "12201d75d73aad5e1c996de4d5ae87a00e58479c8d469bc2eeb5fdeeac8857bc09af",
|
||||
},
|
||||
.jetquery = .{
|
||||
.url = "https://github.com/jetzig-framework/jetquery/archive/23c9741a407b6c4f93d9d21508f6568be747bdcc.tar.gz",
|
||||
.hash = "122020374e5fd67d5836c0f3d7a8f814262aa076e3b90c1043f44184da1c2997e0bb",
|
||||
.url = "https://github.com/jetzig-framework/jetquery/archive/f3d0a02943afb058a968df320032bce7d236ae36.tar.gz",
|
||||
.hash = "12209b52e5a5877008f0aedba23ce1ff778ba8e21a2a4de33182de2d31524b351c88",
|
||||
},
|
||||
.jetcommon = .{
|
||||
.url = "https://github.com/jetzig-framework/jetcommon/archive/a248776ba56d6cc2b160d593ac3305756adcd26e.tar.gz",
|
||||
|
@ -36,6 +36,8 @@ pub fn main() !void {
|
||||
std.enums.nameCast(jetzig.jetquery.Environment, jetzig.environment),
|
||||
.{ .env = try jetzig.database.repoEnv(env), .context = .cli },
|
||||
);
|
||||
defer repo.deinit();
|
||||
|
||||
const model = comptime jetzig.config.get(jetzig.auth.AuthOptions, "auth").user_model;
|
||||
const stdin = std.io.getStdIn();
|
||||
const reader = stdin.reader();
|
||||
|
@ -133,7 +133,7 @@ const Options = struct {
|
||||
\\Minimum log level. Log events below the given level are ignored. Must be one of: { TRACE, DEBUG, INFO, WARN, ERROR, FATAL } (default: DEBUG in development, INFO in production)
|
||||
,
|
||||
.@"log-format" =
|
||||
\\Output logs in the given format. Must be one of: { development, json } (default: development)
|
||||
\\Output logs in the given format. Must be one of: { development, production, json, null } (default: development)
|
||||
,
|
||||
.detach =
|
||||
\\Run the server in the background. Must be used in conjunction with --log (default: false)
|
||||
@ -231,6 +231,9 @@ pub fn init(parent_allocator: std.mem.Allocator, env_options: EnvironmentOptions
|
||||
log_queue,
|
||||
),
|
||||
},
|
||||
.null => jetzig.loggers.Logger{
|
||||
.null_logger = jetzig.loggers.NullLogger{},
|
||||
},
|
||||
};
|
||||
|
||||
if (options.options.detach and std.mem.eql(u8, options.options.log, "-")) {
|
||||
|
@ -49,11 +49,13 @@ pub fn repoEnv(env: jetzig.Environment) !Repo.AdapterOptions {
|
||||
return switch (comptime adapter) {
|
||||
.null => .{},
|
||||
.postgresql => .{
|
||||
.hostname = @as(?[]const u8, env.vars.get("JETQUERY_HOSTNAME")),
|
||||
.port = @as(?u16, try env.vars.getT(u16, "JETQUERY_PORT")),
|
||||
.username = @as(?[]const u8, env.vars.get("JETQUERY_USERNAME")),
|
||||
.password = @as(?[]const u8, env.vars.get("JETQUERY_PASSWORD")),
|
||||
.database = @as(?[]const u8, env.vars.get("JETQUERY_DATABASE")),
|
||||
.hostname = env.vars.get("JETQUERY_HOSTNAME"),
|
||||
.port = try env.vars.getT(u16, "JETQUERY_PORT"),
|
||||
.username = env.vars.get("JETQUERY_USERNAME"),
|
||||
.password = env.vars.get("JETQUERY_PASSWORD"),
|
||||
.database = env.vars.get("JETQUERY_DATABASE"),
|
||||
.pool_size = try env.vars.getT(u16, "JETQUERY_POOL_SIZE"),
|
||||
.timeout = try env.vars.getT(u32, "JETQUERY_TIMEOUT"),
|
||||
},
|
||||
};
|
||||
}
|
||||
|
@ -8,11 +8,12 @@ pub const DevelopmentLogger = @import("loggers/DevelopmentLogger.zig");
|
||||
pub const JsonLogger = @import("loggers/JsonLogger.zig");
|
||||
pub const TestLogger = @import("loggers/TestLogger.zig");
|
||||
pub const ProductionLogger = @import("loggers/ProductionLogger.zig");
|
||||
pub const NullLogger = @import("loggers/NullLogger.zig");
|
||||
|
||||
pub const LogQueue = @import("loggers/LogQueue.zig");
|
||||
|
||||
pub const LogLevel = enum(u4) { TRACE, DEBUG, INFO, WARN, ERROR, FATAL };
|
||||
pub const LogFormat = enum { development, production, json };
|
||||
pub const LogFormat = enum { development, production, json, null };
|
||||
|
||||
/// Infer a log target (stdout or stderr) from a given log level.
|
||||
pub inline fn logTarget(comptime level: LogLevel) LogQueue.Target {
|
||||
@ -26,6 +27,7 @@ pub const Logger = union(enum) {
|
||||
json_logger: JsonLogger,
|
||||
test_logger: TestLogger,
|
||||
production_logger: ProductionLogger,
|
||||
null_logger: NullLogger,
|
||||
|
||||
/// Log a TRACE level message to the configured logger.
|
||||
pub fn TRACE(self: *const Logger, comptime message: []const u8, args: anytype) !void {
|
||||
|
25
src/jetzig/loggers/NullLogger.zig
Normal file
25
src/jetzig/loggers/NullLogger.zig
Normal file
@ -0,0 +1,25 @@
|
||||
const std = @import("std");
|
||||
|
||||
const jetzig = @import("../../jetzig.zig");
|
||||
|
||||
pub inline fn log(self: @This(), comptime level: jetzig.loggers.LogLevel, comptime message: []const u8, args: anytype) !void {
|
||||
_ = self;
|
||||
_ = level;
|
||||
_ = message;
|
||||
_ = args;
|
||||
}
|
||||
|
||||
pub inline fn logSql(self: @This(), event: jetzig.jetquery.events.Event) !void {
|
||||
_ = self;
|
||||
_ = event;
|
||||
}
|
||||
|
||||
pub inline fn logRequest(self: @This(), request: *const jetzig.http.Request) !void {
|
||||
_ = self;
|
||||
_ = request;
|
||||
}
|
||||
|
||||
pub inline fn logError(self: @This(), err: anyerror) !void {
|
||||
_ = self;
|
||||
std.debug.print("Error: {s}\n", .{@errorName(err)});
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user