diff options
author | Tim Potter <tpot@samba.org> | 2002-04-11 05:04:05 +0000 |
---|---|---|
committer | Tim Potter <tpot@samba.org> | 2002-04-11 05:04:05 +0000 |
commit | d0e6af62d6515d8eb35c297a79eb397d12096b01 (patch) | |
tree | 755d096e5a8f85554311ffcb9168055fbc4ed72e | |
parent | ab5b6e255dbc2dfe20a190634535ba05e1631011 (diff) | |
download | samba-d0e6af62d6515d8eb35c297a79eb397d12096b01.tar.gz samba-d0e6af62d6515d8eb35c297a79eb397d12096b01.tar.bz2 samba-d0e6af62d6515d8eb35c297a79eb397d12096b01.zip |
Implemented a setup_logging() function that takes two keywords:
interactive and logfilename. These can be used to send Samba DEBUG()
output to stdout or to a logfile which makes automated testing much
funkier.
Also added get_debuglevel() and set_debuglevel() functions.
(This used to be commit 6c7b5e15c22119623ee959267d2755e21193bc4b)
-rw-r--r-- | source3/python/py_common.c | 63 | ||||
-rw-r--r-- | source3/python/py_common.h | 4 |
2 files changed, 62 insertions, 5 deletions
diff --git a/source3/python/py_common.c b/source3/python/py_common.c index 5c2e0f896c..bc3153c26c 100644 --- a/source3/python/py_common.c +++ b/source3/python/py_common.c @@ -46,10 +46,6 @@ void py_samba_init(void) if (initialised) return; - /* FIXME: logging doesn't work very well */ - - setup_logging("python", True); - /* Load configuration file */ if (!lp_load(dyn_CONFIGFILE, True, False, False)) @@ -58,7 +54,64 @@ void py_samba_init(void) /* Misc other stuff */ load_interfaces(); - DEBUGLEVEL = 10; initialised = True; } + +/* Debuglevel routines */ + +PyObject *get_debuglevel(PyObject *self, PyObject *args) +{ + PyObject *debuglevel; + + if (!PyArg_ParseTuple(args, "")) + return NULL; + + debuglevel = PyInt_FromLong(DEBUGLEVEL); + + return debuglevel; +} + +PyObject *set_debuglevel(PyObject *self, PyObject *args) +{ + int debuglevel; + + if (!PyArg_ParseTuple(args, "i", &debuglevel)) + return NULL; + + DEBUGLEVEL = debuglevel; + + Py_INCREF(Py_None); + return Py_None; +} + +/* Initialise logging */ + +PyObject *py_setup_logging(PyObject *self, PyObject *args, PyObject *kw) +{ + BOOL interactive = False; + char *logfilename = NULL; + static char *kwlist[] = {"interactive", "logfilename", NULL}; + + if (!PyArg_ParseTupleAndKeywords(args, kw, "|is", kwlist, + &interactive, &logfilename)) + return NULL; + + if (interactive && logfilename) { + PyErr_SetString(PyExc_RuntimeError, + "can't be interactive and set log file name"); + return NULL; + } + + if (interactive) + setup_logging("spoolss", True); + + if (logfilename) { + lp_set_logfile(logfilename); + setup_logging(logfilename, False); + reopen_logs(); + } + + Py_INCREF(Py_None); + return Py_None; +} diff --git a/source3/python/py_common.h b/source3/python/py_common.h index 30a47eba25..4a5c92ca8c 100644 --- a/source3/python/py_common.h +++ b/source3/python/py_common.h @@ -27,4 +27,8 @@ void py_samba_init(void); PyObject *py_werror_tuple(WERROR werror); PyObject *py_ntstatus_tuple(NTSTATUS ntstatus); +PyObject *py_setup_logging(PyObject *self, PyObject *args); +PyObject *get_debuglevel(PyObject *self, PyObject *args); +PyObject *set_debuglevel(PyObject *self, PyObject *args); + #endif /* _PY_COMMON_H */ |