* @param client
	 */
	private void cmd_viewlog(final String arg, final Client client) {
		// parse arguments
		List<String> args = Arrays.asList(arg.split(" "));

		String command = args.get(0);

		String[] params = Utils.listToStringArray(args.subList(1, args.size()));

		if (command.charAt(0) == '+') {
			command = command.substring(1);

			if (command.equals("info")) {
				send("Log File: " + LOG_DIR + "\\" + log.getFileName(), client);
				send("Log Size: " + log.getLinesWritten(), client);
			}
			else if (command.equals("lines")) {
				List<String> lines;

				if (params.length >= 2) {
					final int start = Utils.toInt(params[0], 0);
					final int end = Utils.toInt(params[1], log.getLinesWritten());

					lines = Utils.loadList(LOG_DIR + "\\" + log.getFileName(), start, end);
				}
				else {
					lines = Utils.loadList(LOG_DIR + "\\" + log.getFileName());
				}

				send(lines, client);
			}
			else if (command.equals("size") || command.equals("sz")) {
				send("Log Size: " + log.getLinesWritten(), client);
			}
			else if (command.equals("since") || command.equals("sc")) {
				List<String> lines;

				if (params.length >= 1) {
					final Time time = Time.fromString(params[1]);
					lines = Utils.loadList(LOG_DIR + "\\" + log.getFileName());

					int startIndex = 0;

					int index = -1;

					for (final String line : lines) {
						index++;

						String[] parts = line.split(" ");
						String timeString = parts[0].substring(1, parts[0].length() - 1); // trim [] off
						Time time1 = Time.fromString(timeString);

						if (time1.hour >= time.hour && time1.minute >= time.minute && time1.second >= time.second) {
							startIndex = index;
							break;
						}
					}

					lines = lines.subList(startIndex, lines.size());
				}
			}
		}
	}