mirror of
https://github.com/l5yth/potato-mesh.git
synced 2026-07-06 09:52:02 +02:00
Configure Sinatra logging level from DEBUG flag (#97)
* Configure Sinatra logging level * Fix logger level helper invocation * Fix Sinatra logger helper definition syntax
This commit is contained in:
+17
@@ -23,6 +23,7 @@ require "sinatra"
|
||||
require "json"
|
||||
require "sqlite3"
|
||||
require "fileutils"
|
||||
require "logger"
|
||||
|
||||
# run ../data/mesh.sh to populate nodes and messages database
|
||||
DB_PATH = ENV.fetch("MESH_DB", File.join(__dir__, "../data/mesh.db"))
|
||||
@@ -40,6 +41,22 @@ MAX_NODE_DISTANCE_KM = ENV.fetch("MAX_NODE_DISTANCE_KM", "137").to_f
|
||||
MATRIX_ROOM = ENV.fetch("MATRIX_ROOM", "#meshtastic-berlin:matrix.org")
|
||||
DEBUG = ENV["DEBUG"] == "1"
|
||||
|
||||
class << Sinatra::Application
|
||||
def apply_logger_level!
|
||||
logger = settings.logger
|
||||
return unless logger
|
||||
|
||||
logger.level = DEBUG ? Logger::DEBUG : Logger::WARN
|
||||
end
|
||||
end
|
||||
|
||||
Sinatra::Application.configure do
|
||||
app_logger = Logger.new($stdout)
|
||||
set :logger, app_logger
|
||||
use Rack::CommonLogger, app_logger
|
||||
Sinatra::Application.apply_logger_level!
|
||||
end
|
||||
|
||||
# Checks whether the SQLite database already contains the required tables.
|
||||
#
|
||||
# @return [Boolean] true when both +nodes+ and +messages+ tables exist.
|
||||
|
||||
@@ -158,6 +158,27 @@ RSpec.describe "Potato Mesh Sinatra app" do
|
||||
ENV["API_TOKEN"] = @original_token
|
||||
end
|
||||
|
||||
describe "logging configuration" do
|
||||
before do
|
||||
Sinatra::Application.apply_logger_level!
|
||||
end
|
||||
|
||||
after do
|
||||
Sinatra::Application.apply_logger_level!
|
||||
end
|
||||
|
||||
it "defaults to WARN when debug logging is disabled" do
|
||||
expect(Sinatra::Application.settings.logger.level).to eq(Logger::WARN)
|
||||
end
|
||||
|
||||
it "switches to DEBUG when debug logging is enabled" do
|
||||
stub_const("DEBUG", true)
|
||||
Sinatra::Application.apply_logger_level!
|
||||
|
||||
expect(Sinatra::Application.settings.logger.level).to eq(Logger::DEBUG)
|
||||
end
|
||||
end
|
||||
|
||||
describe "GET /" do
|
||||
it "responds successfully" do
|
||||
get "/"
|
||||
|
||||
Reference in New Issue
Block a user