Skip to content

Commit 255d81b

Browse files
author
Prasanna Santhanam
committed
wip: working out a logger implementation
1 parent 5b6b2dc commit 255d81b

File tree

4 files changed

+52
-5
lines changed

4 files changed

+52
-5
lines changed

kubeshell/__init__.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,5 @@
11
__version__ = '0.0.20'
2+
from . import logger
3+
import logging
4+
import logging.config
5+
logging.config.dictConfig(logger.loggingConf)

kubeshell/client.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,17 @@
11
from kubernetes import client, config
22
from kubernetes.client.api_client import ApiException
33

4+
import logging
5+
46

57
class KubernetesClient(object):
68

79
def __init__(self):
10+
self.logger = logging.getLogger(__name__)
811
try:
912
config.load_kube_config()
10-
except Exception as e:
11-
# TODO: log errors to log file
12-
raise(e)
13+
except:
14+
self.logger.warning("unable to load kube-config")
1315

1416
self.v1 = client.CoreV1Api()
1517
self.v1Beta1 = client.AppsV1beta1Api()
@@ -25,8 +27,7 @@ def get_resource(self, resource, namespace="all"):
2527
try:
2628
ret, namespaced_resource = self._call_api_client(resource)
2729
except ApiException as ae:
28-
# TODO: log warning
29-
pass
30+
self.logger.warning("resource autocomplete disabled, encountered ApiException %d: %s" % (ae.status, ae.reason))
3031
if ret:
3132
for i in ret.items:
3233
if namespace == "all" or not namespaced_resource:

kubeshell/logger.py

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
import os
2+
3+
if not os.path.exists(os.path.expanduser("~/.kube-shell")):
4+
try:
5+
os.makedirs(os.path.expanduser("~/.kube-shell"))
6+
except OSError:
7+
pass
8+
9+
logfile = os.path.expanduser("~/.kube-shell/debug.log")
10+
loggingConf = {
11+
"version": 1,
12+
"disable_existing_loggers": False,
13+
"formatters": {
14+
"default": {
15+
"format": "%(asctime)s %[levelname]-8s %(funcName)s:%(lineno)s - %(message)s",
16+
}
17+
},
18+
"handlers": {
19+
"file": {
20+
"class": "logging.FileHandler",
21+
"level": "ERROR",
22+
"formatter": "default",
23+
"filename": logfile,
24+
}
25+
},
26+
"loggers": {
27+
"kubeshell": {
28+
"level": "ERROR",
29+
"handlers": ["file"],
30+
"propagate": "no",
31+
},
32+
"": {
33+
"level": "ERROR",
34+
"handlers": ["file"]
35+
}
36+
},
37+
}

kubeshell/main.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,13 @@
55
from __future__ import print_function, absolute_import, unicode_literals
66
from kubeshell.kubeshell import Kubeshell
77

8+
import logging
9+
logger = logging.getLogger(__name__)
10+
11+
812
def cli():
913
kube_shell= Kubeshell()
14+
logger.info("session start")
1015
kube_shell.run_cli()
1116

1217
if __name__ == "__main__":

0 commit comments

Comments
 (0)