log filtering by url regex
This commit is contained in:
		
							parent
							
								
									0fcfe79994
								
							
						
					
					
						commit
						78ba16f722
					
				| @ -272,11 +272,12 @@ def run_argparse(argv, formatter): | |||||||
|     ap2.add_argument("--ssl-dbg", action="store_true", help="dump some tls info") |     ap2.add_argument("--ssl-dbg", action="store_true", help="dump some tls info") | ||||||
|     ap2.add_argument("--ssl-log", metavar="PATH", help="log master secrets") |     ap2.add_argument("--ssl-log", metavar="PATH", help="log master secrets") | ||||||
| 
 | 
 | ||||||
|     ap2 = ap.add_argument_group('Debug options') |     ap2 = ap.add_argument_group('debug options') | ||||||
|     ap2.add_argument("--log-conn", action="store_true", help="print tcp-server msgs") |     ap2.add_argument("--log-conn", action="store_true", help="print tcp-server msgs") | ||||||
|     ap2.add_argument("--no-sendfile", action="store_true", help="disable sendfile") |     ap2.add_argument("--no-sendfile", action="store_true", help="disable sendfile") | ||||||
|     ap2.add_argument("--no-scandir", action="store_true", help="disable scandir") |     ap2.add_argument("--no-scandir", action="store_true", help="disable scandir") | ||||||
|     ap2.add_argument("--ihead", metavar="HEADER", action='append', help="dump incoming header") |     ap2.add_argument("--ihead", metavar="HEADER", action='append', help="dump incoming header") | ||||||
|  |     ap2.add_argument("--lf-url", metavar="RE", type=str, default=r"^/\.cpr/", help="dont log URLs matching") | ||||||
|      |      | ||||||
|     return ap.parse_args(args=argv[1:]) |     return ap.parse_args(args=argv[1:]) | ||||||
|     # fmt: on |     # fmt: on | ||||||
|  | |||||||
| @ -158,6 +158,8 @@ class HttpCli(object): | |||||||
|             uparam["b"] = False |             uparam["b"] = False | ||||||
|             cookies["b"] = False |             cookies["b"] = False | ||||||
| 
 | 
 | ||||||
|  |         self.do_log = not self.conn.lf_url or not self.conn.lf_url.match(self.req) | ||||||
|  | 
 | ||||||
|         try: |         try: | ||||||
|             if self.mode in ["GET", "HEAD"]: |             if self.mode in ["GET", "HEAD"]: | ||||||
|                 return self.handle_get() and self.keepalive |                 return self.handle_get() and self.keepalive | ||||||
| @ -264,6 +266,7 @@ class HttpCli(object): | |||||||
|             self.reply(html) |             self.reply(html) | ||||||
| 
 | 
 | ||||||
|     def handle_get(self): |     def handle_get(self): | ||||||
|  |         if self.do_log: | ||||||
|             logmsg = "{:4} {}".format(self.mode, self.req) |             logmsg = "{:4} {}".format(self.mode, self.req) | ||||||
| 
 | 
 | ||||||
|             if "range" in self.headers: |             if "range" in self.headers: | ||||||
| @ -315,7 +318,9 @@ class HttpCli(object): | |||||||
|         return self.tx_browser() |         return self.tx_browser() | ||||||
| 
 | 
 | ||||||
|     def handle_options(self): |     def handle_options(self): | ||||||
|  |         if self.do_log: | ||||||
|             self.log("OPTIONS " + self.req) |             self.log("OPTIONS " + self.req) | ||||||
|  | 
 | ||||||
|         self.send_headers( |         self.send_headers( | ||||||
|             None, |             None, | ||||||
|             204, |             204, | ||||||
| @ -836,23 +841,11 @@ class HttpCli(object): | |||||||
|         self.log("{} {}".format(vspd, msg)) |         self.log("{} {}".format(vspd, msg)) | ||||||
| 
 | 
 | ||||||
|         if not nullwrite: |         if not nullwrite: | ||||||
|             # TODO this is bad |  | ||||||
|             log_fn = "up.{:.6f}.txt".format(t0) |             log_fn = "up.{:.6f}.txt".format(t0) | ||||||
|             with open(log_fn, "wb") as f: |             with open(log_fn, "wb") as f: | ||||||
|                 f.write( |                 ft = "{}:{}".format(self.ip, self.addr[1]) | ||||||
|                     ( |                 ft = "{}\n{}\n{}\n".format(ft, msg.rstrip(), errmsg) | ||||||
|                         "\n".join( |                 f.write(ft.encode("utf-8")) | ||||||
|                             unicode(x) |  | ||||||
|                             for x in [ |  | ||||||
|                                 ":".join(unicode(x) for x in [self.ip, self.addr[1]]), |  | ||||||
|                                 msg.rstrip(), |  | ||||||
|                             ] |  | ||||||
|                         ) |  | ||||||
|                         + "\n" |  | ||||||
|                         + errmsg |  | ||||||
|                         + "\n" |  | ||||||
|                     ).encode("utf-8") |  | ||||||
|                 ) |  | ||||||
| 
 | 
 | ||||||
|         self.redirect(self.vpath, msg=msg, flavor="return to") |         self.redirect(self.vpath, msg=msg, flavor="return to") | ||||||
|         self.parser.drop() |         self.parser.drop() | ||||||
| @ -1120,7 +1113,9 @@ class HttpCli(object): | |||||||
|         logmsg += unicode(status) + logtail |         logmsg += unicode(status) + logtail | ||||||
| 
 | 
 | ||||||
|         if self.mode == "HEAD" or not do_send: |         if self.mode == "HEAD" or not do_send: | ||||||
|  |             if self.do_log: | ||||||
|                 self.log(logmsg) |                 self.log(logmsg) | ||||||
|  | 
 | ||||||
|             return True |             return True | ||||||
| 
 | 
 | ||||||
|         ret = True |         ret = True | ||||||
| @ -1134,7 +1129,9 @@ class HttpCli(object): | |||||||
|             logmsg += " \033[31m" + unicode(upper - remains) + "\033[0m" |             logmsg += " \033[31m" + unicode(upper - remains) + "\033[0m" | ||||||
| 
 | 
 | ||||||
|         spd = self._spd((upper - lower) - remains) |         spd = self._spd((upper - lower) - remains) | ||||||
|  |         if self.do_log: | ||||||
|             self.log("{},  {}".format(logmsg, spd)) |             self.log("{},  {}".format(logmsg, spd)) | ||||||
|  | 
 | ||||||
|         return ret |         return ret | ||||||
| 
 | 
 | ||||||
|     def tx_zip(self, fmt, uarg, vn, rem, items, dots): |     def tx_zip(self, fmt, uarg, vn, rem, items, dots): | ||||||
| @ -1243,7 +1240,9 @@ class HttpCli(object): | |||||||
| 
 | 
 | ||||||
|         logmsg += unicode(status) |         logmsg += unicode(status) | ||||||
|         if self.mode == "HEAD" or not do_send: |         if self.mode == "HEAD" or not do_send: | ||||||
|  |             if self.do_log: | ||||||
|                 self.log(logmsg) |                 self.log(logmsg) | ||||||
|  | 
 | ||||||
|             return True |             return True | ||||||
| 
 | 
 | ||||||
|         try: |         try: | ||||||
| @ -1257,7 +1256,9 @@ class HttpCli(object): | |||||||
|             self.log(logmsg + " \033[31md/c\033[0m") |             self.log(logmsg + " \033[31md/c\033[0m") | ||||||
|             return False |             return False | ||||||
| 
 | 
 | ||||||
|  |         if self.do_log: | ||||||
|             self.log(logmsg + " " + unicode(len(html))) |             self.log(logmsg + " " + unicode(len(html))) | ||||||
|  | 
 | ||||||
|         return True |         return True | ||||||
| 
 | 
 | ||||||
|     def tx_mounts(self): |     def tx_mounts(self): | ||||||
|  | |||||||
| @ -1,6 +1,7 @@ | |||||||
| # coding: utf-8 | # coding: utf-8 | ||||||
| from __future__ import print_function, unicode_literals | from __future__ import print_function, unicode_literals | ||||||
| 
 | 
 | ||||||
|  | import re | ||||||
| import os | import os | ||||||
| import sys | import sys | ||||||
| import time | import time | ||||||
| @ -38,6 +39,7 @@ class HttpConn(object): | |||||||
|         self.workload = 0 |         self.workload = 0 | ||||||
|         self.u2idx = None |         self.u2idx = None | ||||||
|         self.log_func = hsrv.log |         self.log_func = hsrv.log | ||||||
|  |         self.lf_url = re.compile(self.args.lf_url) if self.args.lf_url else None | ||||||
|         self.set_rproxy() |         self.set_rproxy() | ||||||
| 
 | 
 | ||||||
|     def set_rproxy(self, ip=None): |     def set_rproxy(self, ip=None): | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 ed
						ed