public synchronized void info() {
		float dl = 0;
		float ul = 0;
		int choked = 0;
		for (SharingPeer peer : this.connected.values()) {
			dl += peer.getDLRate().get();
			ul += peer.getULRate().get();
			if (peer.isChoked()) {
				choked++;
			}
		}

		logger.info("BitTorrent client " + this.getState().name() + ", " +
			choked + "/" +
			this.connected.size() + "/" +
			this.peers.size() + " peers, " +

			this.torrent.getCompletedPieces().cardinality() + "/" +
			this.torrent.getAvailablePieces().cardinality() + "/" +
			this.torrent.getPieceCount() + " pieces " +
			"(" + String.format("%.2f", this.torrent.getCompletion()) + "%), " +

			String.format("%.2f", dl/1024.0) + "/" +
			String.format("%.2f", ul/1024.0) + " kB/s."
		);
	}