Browse Source

added param --log-level

Fabian Peter Hammerle 5 years ago
parent
commit
2773c13ade
1 changed files with 23 additions and 2 deletions
  1. 23 2
      pyftpd-sink

+ 23 - 2
pyftpd-sink

@@ -2,11 +2,20 @@
 
 import argparse
 import hashlib
+import logging
 import os
 import pyftpdlib.authorizers
 import pyftpdlib.handlers
 import pyftpdlib.servers
 
+LOG_LEVELS = {
+    'critical': logging.CRITICAL,
+    'error': logging.ERROR,
+    'warning': logging.WARNING,
+    'info': logging.INFO,
+    'debug': logging.DEBUG,
+}
+
 
 class SHA256Authorizer(pyftpdlib.authorizers.DummyAuthorizer):
 
@@ -19,7 +28,8 @@ class SHA256Authorizer(pyftpdlib.authorizers.DummyAuthorizer):
             raise pyftpdlib.authorizers.AuthenticationFailed()
 
 
-def serve(root_dir_path, username, password_sha256_hexdigest, control_port, passive_port):
+def serve(root_dir_path, username, password_sha256_hexdigest, control_port, passive_port, log_level):
+    logging.basicConfig(level=log_level)
     assert os.path.isdir(root_dir_path), root_dir_path
     authorizer = SHA256Authorizer()
     authorizer.add_user(
@@ -96,7 +106,16 @@ def _init_argparser():
         dest='passive_port',
         envvar='FTP_PASSIVE_PORT',
         default=62121,
-        help='default: env var $FTP_PASSIVE_PORT or 62121',
+        help='port for passive (PASV) & extended passive (EPSV) mode;'
+            +' default: env var $FTP_PASSIVE_PORT or 62121',
+    )
+    argparser.add_argument(
+        '--log-level',
+        metavar='level_name',
+        dest='log_level_name',
+        default='info',
+        choices=LOG_LEVELS.keys(),
+        help='default: %(default)s',
     )
     return argparser
 
@@ -104,6 +123,8 @@ def _init_argparser():
 def main(argv):
     argparser = _init_argparser()
     args = argparser.parse_args(argv[1:])
+    args.log_level = LOG_LEVELS[args.log_level_name]
+    del args.log_level_name
     serve(**vars(args))
     return 0