On Fri, Jan 22, 2010 at 10:21 PM, Lucas Taylor <ltaylor.vo...@gmail.com> wrote: > On 1/22/10 3:15 AM, Pet wrote: >> On Fri, Jan 22, 2010 at 12:13 AM, Lucas Taylor <ltaylor.vo...@gmail.com> >> wrote: >>> On 1/21/10 11:17 AM, Pet wrote: >>>> On Thu, Jan 21, 2010 at 7:02 PM, Maarten ter Huurne >>>> <maar...@treewalker.org> wrote: >>>>> On Thursday 21 January 2010, Lucas Taylor wrote: >>>>> >>>>>> This can occur if you have multiple instances of logfile.LogFile setup >>>>>> to manage the same file. The default rotation is 1MB, so maybe you have >>>>>> another logfile.LogFile somewhere? >>>>> Maybe twistd's log rotation? >>>> Yes, may be. I start my daemon with >>>> /usr/bin/twistd -y mydaemon.py --logfile=/var/log/my.log >>>> --pidfile=/var/lock/mydaemon.pid >>>> >>>> How do I start twistd, so it doesn't produce own log file? >>>> >>>> Thanks for help! >>>> >>>> Pet >>>> >>> You can customize the application to use your logfile and observer: >>> http://twistedmatrix.com/documents/current/core/howto/application.html#auto6 >>> >>> e.g >>> class MyLog(log.FileLogObserver): >>> def emit(self, logEntryDict): >>> log.FileLogObserver.timeFormat = '%Y-%m-%d %H:%M:%S' >>> log.FileLogObserver.emit(self, logEntryDict) >>> >>> maxLogSize = 5000000 >>> logFile = logfile.LogFile("my.log", "/var/log", rotateLength=maxLogSize, >>> maxRotatedFiles=50) >>> >>> application = service.Application("myapp") >>> application.setComponent(log.ILogObserver, MyLog(logFile).emit) >> >> Thanks for suggestion. I'll try it out as soon as I can. Currently I >> do it in that way: >> >> application = service.Application("MyService") >> myLogService = myLogService(LOG_NAME, LOG_DIR) >> myLogService.setServiceParent(application) >> >> >> what is the difference between creating service and setting >> setServiceParent and setComponent? >> >> Pet >> > http://twistedmatrix.com/documents/current/core/howto/application.html > > The important aspect is the setComponent api. This is the part that lets > you override the default logging behavior of twistd. It has nothing to > do with the services that you register with the application using > setServiceParent. > > If your MyLogService only does what you originally posted, you probably > don't need all of that machinery. Using twistd will take care of > starting and stopping logging for you. > > But, if you really want to use your service (say you want to force > rotation on a restart), then you can do so. You just need to set the > ILogObserver component on the application using your observer's emit > function. > > e.g > > application = service.Application("MyService") > myLogService = myLogService(LOG_NAME, LOG_DIR) > myLogService.setServiceParent(application) > application.setComponent(log.ILogObserver, myLogService.loclog.emit) > > Note that this won't work with your original MyLogService implementation > without some reorganization (move logfile and loclog creation up to > __init__) >
Hi, I'm getting an error while starting my service: Failed to load application: 'module' object has no attribute 'ILogObserver' I've imported log with from twisted.python import log Have no idea what is wrong... Pet > > _______________________________________________ > Twisted-Python mailing list > Twisted-Python@twistedmatrix.com > http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python > _______________________________________________ Twisted-Python mailing list Twisted-Python@twistedmatrix.com http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python