Programming__WebObjects-Web Applications-Deployment-Logging

Version 2.1 by smmccraw on 2007/07/08 09:45

Log Rotation

Mike Kienenberger

I can't remember who gave me the basic starting point for this, but I think it may have been one of the Jonathans. You'll need to change the filenames to make it work under non-unix deployment systems.

You'll find it easier to copy out the source by going into Edit mode first.

    public static void main(String argv[])
    {
        try
        {
            String baseOutputPath = null;
           
           look for a -WOOutputPath argument
            for (int i=0; i<argv.length; i++) {
                if (  argv[i].equals("-WOOutputPath") &&
                    !argv[i+1].equals("/dev/null")  ) {
                    String outputPath = argv[i+1];
                    baseOutputPath = outputPath;
                    java.io.File outputFile = new java.io.File(outputPath);
                    if (outputFile.exists()) {
                        
move old file out of way to new location,
                       name based on existing name with an appended timestamp
 
                        
Format the current time.
                        java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat("yyyy-MM-dd_HH:mm:ss");
                        java.util.GregorianCalendar now = new java.util.GregorianCalendar();
                        String dateSuffix = ".bck-" + formatter.format(now.getTime());
                        System.err.println("new name: " + outputPath + dateSuffix);
                        java.io.File renamedFile = new java.io.File(outputPath + dateSuffix);
                        outputFile.renameTo(renamedFile);
                    }
                    break;
                }
            }
        }
        catch (Throwable e) {
           just so any Throwables generated in trying to do this don't
            
keep our app from launching.
            System.err.println("Ignoring: " + e);
        }
 
        WOApplication.main(argv, Application.class);
    }

Category:WebObjects