Skip to content

Commit

Permalink
Adds a module for logging requests
Browse files Browse the repository at this point in the history
Signed-off-by: BlackMinou <romain.chanoir@viacesi.fr>
  • Loading branch information
BlackMinou committed Nov 29, 2015
1 parent 6c70ee6 commit e1ef7ba
Showing 1 changed file with 58 additions and 0 deletions.
58 changes: 58 additions & 0 deletions lib/nitcorn/logging.nit
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
# This file is part of NIT ( http://www.nitlanguage.org ).
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# logs requests
module logging

import reactor
import realtime
import performance_analysis

redef class Action

redef fun prepare_respond_and_close(request, truncated_uri, http_server) do
if debug then
print """{{{class_name}}} enter:
uri="{{{truncated_uri}}}"
query="{{{request.query_string}}}"
body:{{{request.body.length}}} bytes"""
var clock = new Clock
super
var perf = sys.perfs[class_name]
perf.add(clock.lapse)
if perf.count % perfs_print_period == 0 then print "{class_name} perfs: {perf}:"
print "{class_name} return: uri={truncated_uri}"
else
super
end
end
end

redef fun print(object) do
var timestamp = new Tm.gmtime
super "{timestamp.year}/{timestamp.mon}/{timestamp.mday} "+
"{timestamp.hour}:{timestamp.min}:{timestamp.sec}: {object}"
end

redef fun print_error(object) do
var timestamp = new Tm.gmtime
super "{timestamp.year}/{timestamp.mon}/{timestamp.mday} "+
"{timestamp.hour}:{timestamp.min}:{timestamp.sec}: {object}"
end

# Should the actions be logged ?
fun debug: Bool do return false

# Number of actions executed before printing the perfs
fun perfs_print_period: Int do return 20

0 comments on commit e1ef7ba

Please sign in to comment.