/** * Logback: the reliable, generic, fast and flexible logging framework. * Copyright (C) 1999-2013, QOS.ch. All rights reserved. * * This program and the accompanying materials are dual-licensed under * either the terms of the Eclipse Public License v1.0 as published by * the Eclipse Foundation * * or (per the licensee's choosing) * * under the terms of the GNU Lesser General Public License version 2.1 * as published by the Free Software Foundation. */ package ch.qos.logback.classic.net; import java.io.InputStreamReader; import org.slf4j.LoggerFactory; import ch.qos.logback.classic.BasicConfigurator; import ch.qos.logback.classic.Logger; public class SocketMin { static Logger logger = (Logger) LoggerFactory.getLogger(SocketMin.class .getName()); static SocketAppender s; public static void main(String argv[]) { if (argv.length == 3) { init(argv[0], argv[1]); } else { usage("Wrong number of arguments."); } // NDC.push("some context"); if (argv[2].equals("true")) { loop(); } else { test(); } s.stop(); } static void usage(String msg) { System.err.println(msg); System.err.println("Usage: java " + SocketMin.class + " host port true|false"); System.exit(1); } static void init(String host, String portStr) { Logger root = (Logger) LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME); BasicConfigurator.configure(root.getLoggerContext()); try { int port = Integer.parseInt(portStr); logger.info("Creating socket appender (" + host + "," + port + ")."); s = new SocketAppender(); s.setRemoteHost(host); s.setPort(port); s.setName("S"); root.addAppender(s); } catch (java.lang.NumberFormatException e) { e.printStackTrace(); usage("Could not interpret port number [" + portStr + "]."); } catch (Exception e) { System.err.println("Could not start!"); e.printStackTrace(); System.exit(1); } } static void loop() { Logger root = (Logger) LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME); InputStreamReader in = new InputStreamReader(System.in); System.out.println("Type 'q' to quit"); int i; int k = 0; while (true) { logger.debug("Message " + k++); logger.info("Message " + k++); logger.warn("Message " + k++); logger.error("Message " + k++, new Exception("Just testing")); try { i = in.read(); } catch (Exception e) { return; } if (i == -1) break; if (i == 'q') break; if (i == 'r') { System.out.println("Removing appender S"); root.detachAppender("S"); } } } static void test() { int i = 0; logger.debug("Message " + i++); logger.info("Message " + i++); logger.warn("Message " + i++); logger.error("Message " + i++); logger.debug("Message " + i++, new Exception("Just testing.")); } }