Ejemplo n.º 1
0
def logTileRequest(tileorigin, tilesource, x, y, z, ext, status, datetime, ip, gw_logs=None):
    log_root = settings.LOG_REQUEST_ROOT
    log_format = settings.LOG_REQUEST_FORMAT
    if log_root and log_format:
        log_file = log_root+os.sep+"requests_tiles_"+datetime.strftime('%Y-%m-%d')+".tsv"

        line = log_format.format(status=status,tileorigin=tileorigin,tilesource=tilesource,z=z,x=x,y=y,ext=ext,ip=ip,datetime=datetime.isoformat())
        # Write to File
        client, producer = provision_producer("file", path=log_file, codec="GeoWatchCodecPlain", verbose=True)
        producer.send_text(line)

        # Write to Log Stream
        if not gw_logs:
            topic = settings.TILEJET_GEOWATCH_TOPIC_LOGS
            client, gw_logs = provision_geowatch_producer(topic, "GeoWatchCodecPlain", max_tries=3, sleep_period=5, verbose=True)
        gw_logs.send_text(line)
sleep_period = settings.TILEJET_GEOWATCH_SLEEP_LOGS
mongodb_host = settings.TILEJET_MONGODB_HOST
mongodb_port = settings.TILEJET_MONGODB_PORT
mongodb_name = settings.TILEJET_MONGODB_NAME
topic_stats = settings.TILEJET_GEOWATCH_TOPIC_STATS
mongodb_collection = settings.TILEJET_COLLECTION_LOGS
list_stats = settings.TILEJET_LIST_STATS

timeout = 5
max_tries = 3
client_consumer, consumer = provision_geowatch_consumer(topic_logs, "GeoWatchCodecPlain", max_tries=max_tries, sleep_period=sleep_period, topic_check=False, verbose=verbose)

if not consumer:
    print "Could not get lock on GeoWatch server after "+str(max_tries)+" tries."
else:
    print "Consumer locked.  Initializing producer for statistics"
    client_producer, producer = provision_geowatch_producer(topic_stats, "GeoWatchCodecJSON", max_tries=3, sleep_period=5, verbose=verbose)
    broker = TileJetBrokerLogs(
        consumer=consumer,
        sleep_period=sleep_period,
        count=count_logs,
        timeout=timeout,
        mongodb_host=mongodb_host,
        mongodb_port=mongodb_port,
        mongodb_name=mongodb_name,
        mongodb_collection=mongodb_collection,
        list_stats=list_stats,
        producer_stats=producer,
        verbose=verbose)
    broker.run()