using the sysloghandler class

2007-04-18 Thread Nicholas Milkovits
Hello all,

I have a small script which attempts to write to the user.log syslog

import logging, logging.handlers

logger = logging.getLogger('bender')
handler = logging.handlers.SysLogHandler(('localhost',
logging.handlers.SYSLOG_UDP_PORT),
logging.handlers.SysLogHandler.LOG_USER)
formatter = logging.Formatter('%(filename)s: %(levelname)s: %(message)s')
handler.setFormatter(formatter)
logger.addHandler(handler)
logger.error('what')

but no log entries show up, however if I use the syslog module as such:

>>> import syslog
>>> syslog.syslog('testing syslog')

everything works fine. I am not sure what I am doing wrong. Any help
would be appreciated.

Thanks,

Nick
-- 
http://mail.python.org/mailman/listinfo/python-list


Type allocation in extensions

2007-03-27 Thread Nicholas Milkovits
Hi everyone,

I've been reading through the documentation on extending and embedding
python and the C API and I have a question about how allocation occurs
of one type from another type. For example lets so I make to C module
foo.c and bar.c and each has a python type.  If I want to define a
method in foo.c that will return and new bar object how would I go
about doing that. Do I need to initialize tp_call and tp_alloc in
order to use PyObject_Call()? Also, If I do not supply an allocfunc
but instead initialize it to 0 when I declare my PyTypeObject for foo
does it automatically get set to a generic allocation function?

For example:

In python I want to be able to write:

f = Foo.new()
b = foo.bar()


bar.c

static PyTypeObject BarType = {
PyObject_HEAD_INIT(NULL)
0,// ob_size
"bar",  // tp_name
sizeof(bar),// tp_basicsize
0,  // tp_itemsize
(destructor) Bar_Free, // tp_dealloc
.snip...
0, //tp_call
.snip...
(initproc) Bar_Init,   // tp_init
0,// tp_alloc
Bar_New,// tp_new
0,   // tp_free


static PyObject *Bar_New(PyTypeObject *type, PyObject *args, PyObject
keywordArgs)
{
 // How does this call work if I never set an allocfunc pointer when I
// declared the bar type
 return= type->tp_alloc(type, 0);
}


foo.c

// Is PyObject_Call what I want to use and if so
// how does it work if tp_call was initialized to 0
// or not even specified in my BarType variable?
static PyObject *Foo_NewBar(foo *self, PyObject *args)  
{
PyObject *createArgs, *bar_ref;

createArgs = PyTuple_New();
if (!createArgs)
return NULL;
Py_INCREF(self);
bar_ref = PyObject_Call( (PyObject*) &BarType, createArgs, NULL);
Py_DECREF(createArgs);
return bar_ref;
}

Thanks in advace for the help,
Nick
-- 
http://mail.python.org/mailman/listinfo/python-list