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()