[Zope3-Users] Re: Configuring a package to use a file in buildout
Jürgen Kartnaller
juergen at kartnaller.at
Fri Nov 23 05:00:19 EST 2007
In your buildout you do :
[instance]
recipe = zc.zope3recipes:instance
application = app
address = 8080
zope.conf =
<product-config my-config-name>
storagedir ${buildout:directory}/parts/log
</product-config>
If you need the log dir precreated you do :
[extfiledir]
recipe = lovely.recipe:mkdir
path = parts/log
To access the product config from python :
from zope.app.appsetup.product import getProductConfiguration
config = getProductConfiguration('my-config-name')
if config is not None:
path = config.get('logpath')
Use your utility name as "my-config-name".
Jürgen
Darryl Cousins wrote:
> Hi,
>
> I have a custom logger in a package registered with utility
>
> <zope:utility factory=".logger.MyLogger" name="logger" />
>
> In the code it sets itself a logfile to write to, up to now that has
> been in a 'log' directory in the package itself.
>
> Now I want to use a log file which is in the buildout of the
> application. How could I go about finding that directory from python
> code in the package?
>
> The only route that I have come up with so far is to write a
> meta:directive which I can use to register the logging utility with a
> file path. Something like:
>
> <meta:directive
> namespace="http://namespaces.zope.org/rdb"
> name="provideLogger"
> schema=".zcml.IProvideLoggerDirective"
> handler=".zcml.loggerhandler"
> />
>
> Which I could use like
>
> <provideLogger component=".logger.MyLogger"
> log="/path/to/log/file" />
>
> But there may be a better/easier way. Suggestions?
>
> Regards,
> Darryl
More information about the Zope3-users
mailing list