Beispiel #1
0
def start(application, apps=[]):
    "start a twisted instance"
    dispatcher = Dispatcher(apps)  # we only want one instance
    # attach the service to its parent application
    resource = EvokeResource()
    resource.evokeDispatcher = dispatcher
    # serve gzipped content if we can..
    if has_gzip:
        resource = EncodingResourceWrapper(resource, [GzipEncoderFactory()])
    # this assumes that this is a single apps
    # multiserve having been deprecated
    Session = list(dispatcher.apps.values())[0]['Session']
    # set up our server
    fileServer = EvokeSite(resource, Session, requestFactory=EvokeRequest)

    # start the service
    port = int(list(dispatcher.apps.values())[0]['Config'].port)
    evokeService = internet.TCPServer(port, fileServer)
    evokeService.setServiceParent(application)

    # logging
    # create log dir if necessary
    try:
        #        os.mkdir('../logs')
        os.mkdir('logs')
    except OSError:
        pass
#    logfile = DailyLogFile("twistd.log", "../logs")
    logfile = DailyLogFile("twistd.log", "logs")
    application.setComponent(ILogObserver, FileLogObserver(logfile).emit)
def get_log_observer():
    f = logfile.LogFile("carbon_forwarder.log", log_dir, rotateLength=log_rotate_length, maxRotatedFiles=max_rotated_log_files)
    observer = FileLogObserver(f)
    filterer = FilteringLogObserver(observer.emit,
        [LogLevelFilterPredicate(
            LogLevel.levelWithName(log_level))])
    return filterer
Beispiel #3
0
def main():
    factory = VatsimClientFactory()
    log.startLogging(sys.stdout)
    #log.addObserver(log.FileLogObserver(open("trace.log",'w')))
    addObserver(FileLogObserver(open("trace.log",'w')).emit)
    reactor.connectTCP('USA-E.vatsim.net',6809, factory)
    reactor.run()
Beispiel #4
0
def makeService(config):
    if config['logfile']:
        use_twisted_logging = False
        if use_twisted_logging:
            logfile_base = os.path.basename(config['logfile'])
            logfile_parent = os.path.dirname(config['logfile'])
            logfile = DailyLogFile(logfile_base, logfile_parent)
            self.application.setComponent(ILogObserver, FileLogObserver(logfile).emit)
        else:
            # logging.basicConfig(level = logging.DEBUG)
            logging.basicConfig(filename = config['logfile'], level = config['loglevel'])
    else:
        logging.basicConfig(level = config['loglevel'])
    
    if not config['config']:
        logging.error("Please specify a config file with the -c option.")
        config.opt_help()

    # which reactor are we using?  does this change with the --poll
    # parameter?
    from twisted.internet import reactor
    logging.info("Reactor Type: " + str(reactor))
    apns_daemon = daemon.APNSDaemon(reactor)
    configs.read_listeners_in_config(config['config'], apns_daemon, config.service)
    configs.read_apps_in_config(config['config'], apns_daemon)
    return config.service
Beispiel #5
0
    def main(self):
        """Parse arguments and run the script's main function via ``react``."""
        observer = None
        try:
            if not self.log_directory.exists():
                self.log_directory.makedirs()
            log_path = self.log_directory.child(
                b"%s-%d.log" %
                (os.path.basename(self.sys_module.argv[0]), os.getpid()))
            log_file = log_path.open("a")
            observer = FileLogObserver(log_file).emit
            addObserver(observer)
            msg("Arguments: %s" % (self.sys_module.argv, ))
        except (OSError, IOError):
            pass

        options = self._parse_options(self.sys_module.argv[1:])
        # XXX: We shouldn't be using this private _reactor API. See
        # https://twistedmatrix.com/trac/ticket/6200 and
        # https://twistedmatrix.com/trac/ticket/7527
        self._react(self.script.main, (options, ), _reactor=self._reactor)

        # Not strictly necessary, but nice cleanup for tests:
        if observer is not None:
            removeObserver(observer)
            log_file.close()
Beispiel #6
0
def start(application, apps=[]):
    "start a twisted instance"
    dispatcher = Dispatcher(apps)  # we only want one instance
    # attach the service to its parent application
    resource = EvokeResource()
    resource.evokeDispatcher = dispatcher
    # serve gzipped content if we can..
    if has_gzip:
        resource = EncodingResourceWrapper(resource, [GzipEncoderFactory()])
    # set up our server
    fileServer = server.Site(resource)
    # use long session
    fileServer.sessionFactory = LongSession
    # start the service
    port = int(list(dispatcher.apps.values())[0]['Config'].port)
    evokeService = internet.TCPServer(port, fileServer)
    evokeService.setServiceParent(application)

    # logging
    # create log dir if necessary
    try:
        os.mkdir('logs')
    except OSError:
        pass
    logfile = DailyLogFile("twistd.log", "logs")
    application.setComponent(ILogObserver, FileLogObserver(logfile).emit)
Beispiel #7
0
 def initLog(self, app, env, logdir):
     if env == "production":
         from twisted.python.log import ILogObserver, FileLogObserver
         from twisted.python.logfile import DailyLogFile
         logfile = DailyLogFile("production.log", logdir)
         app.setComponent(ILogObserver, FileLogObserver(logfile).emit)
     else:
         log.FileLogObserver.emit = _emit
Beispiel #8
0
 def startService(self):
     Service.startService(self)
     if self.filename != '-':
         self.logfile = LogFile.fromFullPath(self.filename,
                                             rotateLength=None,
                                             defaultMode=0o644)
         self.__previous_signal_handler = signal.signal(
             signal.SIGUSR1, self._signal_handler)
     else:
         self.logfile = sys.stdout
     self.observer = FileLogObserver(self.logfile)
     self.observer.start()
Beispiel #9
0
    def parse_options(self):
        from optparse import OptionParser

        parser = OptionParser(version="%prog 0.1")
        parser.add_option("-c",
                          "--config",
                          dest="configfile",
                          help="Config file to read application info from.",
                          metavar="CONFIG-FILE")
        parser.add_option("-l",
                          "--logfile",
                          dest="logfile",
                          help="Path of the logfile.",
                          metavar="LOG-FILE")

        print "=" * 80
        (options, args) = parser.parse_args()

        if not options.configfile:
            parser.error(
                "Please specify a valid config filename with the -c option")

        if options.logfile:
            use_twisted_logging = False
            if use_twisted_logging:
                logfile_base = os.path.basename(options.logfile)
                logfile_parent = os.path.dirname(options.logfile)
                logfile = DailyLogFile(logfile_base, logfile_parent)
                self.application.setComponent(ILogObserver,
                                              FileLogObserver(logfile).emit)
            else:
                # logging.basicConfig(level = logging.DEBUG)
                logging.basicConfig(filename=options.logfile,
                                    level=logging.DEBUG)
        else:
            logging.basicConfig(level=logging.DEBUG)

        import configs
        configs.read_listeners_in_config(options.configfile, self.apns_daemon,
                                         self.application)
        configs.read_apps_in_config(options.configfile, self.apns_daemon)
Beispiel #10
0
def make_application():
    ssetings = settings.get('SERVER')
    port = ssetings['port']

    pkg_size = settings.getint("SEED_PKG_SIZE")
    seed_servie = MemoryBasedSeedsService(pkg_size)
    handler = RequestHandler(seed_servie)
    processor = Scheduler.Processor(handler)

    factory = TTwisted.ThriftServerFactory(processor,
        TBinaryProtocol.TBinaryProtocolFactory())
    tcp_service = internet.TCPServer(port, factory)

    application = service.Application(ssetings['name'])
    logfile = DailyLogFile(settings.get('LOG_FILE'), settings.get('LOG_DIR'))
    application.setComponent(ILogObserver, FileLogObserver(logfile).emit)

    multiService = service.MultiService()
    tcp_service.setServiceParent(multiService)
    multiService.setServiceParent(application)
    return application
Beispiel #11
0
    LOGBOT_CHANNEL = config["server"]["channel"]
    LOGBOT_LOCATION = config["server"]["ip"]
    LOGBOT_PORT = config["server"]["port"]
    LOGBOT_NAME = config["server"]["name"] or platform.node().split(
        ".")[0][:15]
    if not LOGBOT_NAME:
        print "Cannot detect a name for the client (usually means the system hostname cannot be detected)"
        sys.exit(1)

    OPER_CREDENTIALS = (config["server"]["user"], config["server"]["password"])
    TAIL_LOCATION = config["logbot"]["tail_location"][
        platform.system().lower()]

    OTHER_CHANNELS = [
        config["files"][x].get("channel", None) for x in config["files"]
        if config["files"][x].get("channel", None)
    ]

    application = service.Application('LogBot')  #, uid=1, gid=1)
    if not os.path.exists("logs"):
        os.mkdir("logs")
    logfile = DailyLogFile("logbot.log", "logs")
    log_observer = FileLogObserver(logfile).emit
    #application.setComponent(ILogObserver, log_observer)
    log.addObserver(log_observer)
    serviceCollection = service.IServiceCollection(application)
    manager = FileManager(config, serviceCollection)
    for item in config["files"]:
        manager.add_file(
            TailedFile(item, config["files"][item]["path"],
                       config["files"][item].get("channel", None)))
Beispiel #12
0
def checker_master():
    if config.LOG_DIRECTORY == "stdout":
        log.startLogging(sys.stdout)
    else:
        log.startLogging(FileLogObserver(daily("checker.log")))
Beispiel #13
0
        if 'Yes' == service_config.get(service, 'enabled'):
            [low_protocol,
             low_port] = service_config.get(service, 'low_port').split(':')
            [protocol, port] = service_config.get(service, 'port').split(':')

            if int(low_port) < 1024:
                ipt_file.write('./ipt_set_' + low_protocol + ' ' + low_port +
                               ' ' + port + '\n')

    # set file permissin, close, and quit
    os.chmod(ipt_file_name, 0744)
    ipt_file.close()
    quit()

log_file = DailyLogFile(log_file_name, log_path)
file_log_observer = FileLogObserver(log_file)
time_zone = subprocess.check_output(['date', '+%z'])
file_log_observer.timeFormat = "%Y-%m-%d %H:%M:%S,%f," + time_zone.rstrip()

# start logging
log.startLoggingWithObserver(file_log_observer.emit, False)

if 'Yes' == honeypy_config.get('twitter', 'enabled') or \
   'Yes' == honeypy_config.get('honeydb', 'enabled') or \
   'Yes' == honeypy_config.get('slack', 'enabled') or \
   'Yes' == honeypy_config.get('logstash', 'enabled') or \
   'Yes' == honeypy_config.get('elasticsearch', 'enabled'):
    # tail log file when reactor runs
    triageConfig(honeypy_config)
    tailer = lib.followtail.FollowTail(log_path + log_file_name)
    tailer.lineReceived = triage
Beispiel #14
0
def checker_worker():
    if config.LOG_DIRECTORY == "stdout":
        log.startLogging(sys.stdout)
    else:
        log.startLogging(
            FileLogObserver(daily("checker-{0}.log".format(config.ARGS.n))))
Beispiel #15
0
        log.err('process exit, error[%s]' % result.getErrorMessage())
        self._work_d = None

    def _readstat(self, statfile):
        if self._work_d is None:
            self._start_work()
        if self._query_protocols and os.path.isfile(statfile):
            try:
                with open(statfile, 'rb') as f:
                    self._work_stat = f.read()
            except Exception as err:
                self._work_stat = err.message
                log.err(err.message)

            out = [
                'run times: %d\n\n' % (self._restart_times), self._work_stat
            ]
            out = ''.join(out)
            for protocol in self._query_protocols:
                protocol.sendLine(out)


# 创建log目录
if not os.path.isdir('./collectord_log'):
    os.mkdir('./collectord_log')

application = service.Application('collectord')
logfile = DailyLogFile('collectord.log', './collectord_log')
application.setComponent(ILogObserver, FileLogObserver(logfile).emit)
CollectorServices(31000).setServiceParent(application)
Beispiel #16
0
    syslog_conf = (syslog_conf[0], int(syslog_conf[1]))
else:
    syslog_conf = syslog_conf[0]
init_logger( syslog_conf )
'''

from server import Server
from datetime import datetime

server = Server()

reactor.addSystemEventTrigger('before', 'shutdown', server.cleanup)
application = service.Application(SERVER_NAME)

log_path = config.log_path
log_rotate = int(config.log_rotate_interval)
logfile = LogFile('message.log', log_path, rotateLength=log_rotate)
logOb = FileLogObserver(logfile)
logOb.formatTime = lambda when: datetime.fromtimestamp(when).strftime(
    '%m/%d %T.%f')

application.setComponent(ILogObserver, logOb.emit)

internet.TCPServer(config.port, server,
                   interface=config.interface).setServiceParent(
                       service.IServiceCollection(application))
internet.TCPServer(config.adminport,
                   ShellFactory(),
                   interface=config.interface).setServiceParent(
                       service.IServiceCollection(application))
Beispiel #17
0
# setup master
basedir = os.path.abspath(os.path.dirname(__file__))
configfile = 'master.cfg'

# Default umask for server
umask = None

# note: this line is matched against to check that this is a buildmaster
# directory; do not edit it.
application = service.Application('buildmaster')
import sys

from twisted.python.log import ILogObserver, FileLogObserver

application.setComponent(ILogObserver, FileLogObserver(sys.stdout).emit)

m = BuildMaster(basedir, configfile, umask)
m.setServiceParent(application)

# and slave on the same process!

buildmaster_host = 'localhost'
port = 19989
slavename = 'example-slave'
passwd = 'pass'
keepalive = 600
usepty = 0
umask = None
maxdelay = 300
allow_shutdown = None
Beispiel #18
0
def make_file_observer(path, log_level_name):
    folder, fname = os.path.split(path)
    logfile = DailyLogFile(fname, folder)
    observer = FileLogObserver(logfile)
    return make_wrapped_observer(observer, log_level_name)
Beispiel #19
0
def api():
    if config.LOG_DIRECTORY == "stdout":
        log.startLogging(sys.stdout)
    else:
        log.startLogging(FileLogObserver(daily("api.log")))
Beispiel #20
0
def start():
    global options, old
    args = sys.argv[1:]

    options = ClientOptions()
    try:
        options.parseOptions(args)
    except usage.UsageError, u:
        print 'ERROR: %s' % u
        options.opt_help()
        sys.exit(1)

    log.startLogging(sys.stderr)
    if options['logfile']:
        from twisted.python.log import FileLogObserver, addObserver
        addObserver(FileLogObserver(open(options['logfile'], 'w')).emit)

    if options['host'].find('@') > -1:
        options['user'], options['host'] = options['host'].split('@', 1)

    if not options['user']:
        options['user'] = getuser()

    if not options['port']:
        options['port'] = '22'

    connect(options['host'], options['port'], options)

    reactor.run()
    print 'Connection to %s closed.' % options['host']
    sys.exit()