On Thu, Jan 28, 2010 at 9:46 AM, Pet <petshm...@googlemail.com> wrote: > 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...
Ok, there is no ILogObserver in log module. I've Twisted 8.1.0 installed. > > > 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