mirror of
https://github.com/samba-team/samba.git
synced 2025-01-20 14:03:59 +03:00
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 commit is contained in:
parent
8bb798ab3d
commit
6c7b5e15c2
@ -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;
|
||||
}
|
||||
|
@ -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 */
|
||||
|
Loading…
x
Reference in New Issue
Block a user