@Override
	public void handleEvent() {
		LogManager.getLogger(FileAppender.class).info("handle event");
		try {
			int readed, wrote;
			while ((readed = pipe.source().read(dst)) != 0) {
				if (readed > 0) {
					if (readed < dst.capacity()) {
						dst.put(System.lineSeparator().getBytes());
					}
					dst.flip();
					wrote = fileChannel.write(dst);
					LogManager.getLogger(FileAppender.class).log(Level.INFO,
							"file appender reads {}, wrote {}", readed, wrote);
					dst.clear();
				} else {
					LogManager.getLogger(FileAppender.class).error(
							"end of input?");
					return;
				}
			}
		} catch (IOException e) {
			LogManager.getLogger(FileAppender.class).error("run", e);
		}
		// if (R.USE_EXECUTORS) {
		// try {
		// dispatcher.register(FileAppender.this, SelectionKey.OP_READ);
		// } catch (ClosedChannelException e) {
		// e.printStackTrace();
		// }
		// }
		LogManager.getLogger(FileAppender.class).debug("executed");
	}