FileDocCategorySizeDatePackage
Roller.javaAPI DocApache log4j 1.2.153057Sat Aug 25 00:09:40 BST 2007org.apache.log4j.varia

Roller

public class Roller extends Object
A simple application to send roll over messages to a potentially remote {@link ExternallyRolledFileAppender}.

It takes two arguments, the host_name and port_number where the ExternallyRolledFileAppender is listening.

author
Ceki Gülcü
since
version 0.9.0

Fields Summary
static Logger
cat
static String
host
static int
port
Constructors Summary
Roller()


  // Static class.
   
  
Methods Summary
static voidinit(java.lang.String hostArg, java.lang.String portArg)

    host = hostArg;
    try {
      port =  Integer.parseInt(portArg);
    }
    catch(java.lang.NumberFormatException e) {
      usage("Second argument "+portArg+" is not a valid integer.");
    }
  
public static voidmain(java.lang.String[] argv)
Send a "RollOver" message to ExternallyRolledFileAppender on host and port.


    BasicConfigurator.configure();

    if(argv.length == 2) 
      init(argv[0], argv[1]);
    else 
      usage("Wrong number of arguments.");
    
    roll();
  
static voidroll()

    try {
      Socket socket = new Socket(host, port);
      DataOutputStream dos = new DataOutputStream(socket.getOutputStream());
      DataInputStream dis = new DataInputStream(socket.getInputStream());
      dos.writeUTF(ExternallyRolledFileAppender.ROLL_OVER);
      String rc = dis.readUTF();
      if(ExternallyRolledFileAppender.OK.equals(rc)) {
	cat.info("Roll over signal acknowledged by remote appender.");
      } else {
	cat.warn("Unexpected return code "+rc+" from remote entity.");
	System.exit(2);
      }
    } catch(IOException e) {
      cat.error("Could not send roll signal on host "+host+" port "+port+" .",
		e);
      System.exit(2);
    }
    System.exit(0);
  
static voidusage(java.lang.String msg)

    System.err.println(msg);
    System.err.println( "Usage: java " + Roller.class.getName() +
			"host_name port_number");
    System.exit(1);