public void stop() { running = false; for (Handler handler : logger.getHandlers()) { handler.flush(); handler.close(); } }
// -------------------------------------------------------- Private Methods private void resetLoggers( ClassLoaderLogManagerClassLoaderLogInfo clClassLoaderLogManagerClassLoaderLogInfo) { // This differs from LogManager#resetLogger() in that we close not all // handlers of all loggers, but only those that are present in our // ClassLoaderClassLoaderLogManagerClassLoaderLogInfo#handlers list. That is because our // #addLogger(..) // method can use handlers from the parent class loaders, and closing // handlers that the current class loader does not own would be not // good. synchronized (clClassLoaderLogManagerClassLoaderLogInfo) { for (Logger logger : clClassLoaderLogManagerClassLoaderLogInfo.getLoggers().values()) { Handler[] handlers = logger.getHandlers(); for (Handler handler : handlers) { logger.removeHandler(handler); } } for (Handler handler : clClassLoaderLogManagerClassLoaderLogInfo.getHandlers().values()) { try { handler.close(); } catch (Exception e) { // Ignore } } clClassLoaderLogManagerClassLoaderLogInfo.getHandlers().clear(); } }
public void preprocess(Run run) { File logFile = new File(getRunDir(run), "genetik.log"); try { SimpleFileHandler fh = new SimpleFileHandler(logFile); fh.setFormatter(new CompactFormatter()); Logger logger = Logger.getLogger(GenetikConstants.LOGGER); logger.setLevel(Level.INFO); logger.setUseParentHandlers(false); Handler handlers[] = logger.getHandlers(); logger.addHandler(fh); for (Handler h : handlers) { logger.removeHandler(h); if (h instanceof SimpleFileHandler) h.close(); // close our old one } } catch (Exception exp) { throw new IllegalArgumentException( "Unable to create log file at " + logFile.getAbsolutePath()); } super.preprocess(run); }
@Override public void provideResourceTo(Consumer<? super Handler> consumer) { Handler handler = Handlers.createFlushingHandler(stream); try { consumer.accept(handler); } finally { handler.close(); } }
public void stop() { running = false; for (Handler handler : logger.getHandlers()) { handler.flush(); handler.close(); } if (jFrame != null) { jFrame.dispose(); } }
/** * Close a resource, logging an error if an error occurs. * * @param resource the resource to close */ public static void safeClose(final Handler resource) { try { if (resource != null) { closeMsg.closingResource(resource); resource.close(); } } catch (Throwable t) { closeMsg.resourceCloseFailed(t, resource); } }
private void removeAllHandlersFrom(final java.util.logging.Logger logger) { if (logger != null) { for (final Handler handler : logger.getHandlers()) { logger.removeHandler(handler); try { handler.close(); } catch (Exception ex) { // ignored } } } }
private void log(String msg) { Handler fh = null; try { Logger logger = Logger.getLogger(this.getClass().getName()); fh = new FileHandler( this.bundle.getPropertiesRealPath() + FileUtil.getFileSeparator() + "kortathjonustan.log"); logger.addHandler(fh); logger.setLevel(Level.ALL); logger.info(msg); fh.close(); } catch (Exception e) { e.printStackTrace(); } finally { if (fh != null) { fh.close(); } } }
/** Called on plugin disable. */ @Override public void onDisable() { for (Player player : getServer().getOnlinePlayers()) { LocalPlayer lPlayer = wrapPlayer(player); if (controller.getSession(lPlayer).hasCUISupport()) { lPlayer.dispatchCUIHandshake(); } } controller.clearSessions(); for (Handler h : controller.commandLogger.getHandlers()) { h.close(); } config.unload(); server.unregisterCommands(); this.getServer().getScheduler().cancelTasks(this); }
// Private method to reset an invidual target logger. private void resetLogger(String name) { Logger logger = getLogger(name); if (logger == null) { return; } // Close all the Logger's handlers. Handler[] targets = logger.getHandlers(); for (int i = 0; i < targets.length; i++) { Handler h = targets[i]; logger.removeHandler(h); try { h.close(); } catch (Exception ex) { // Problems closing a handler? Keep going... } } if (name != null && name.equals("")) { // This is the root logger. logger.setLevel(defaultLevel); } else { logger.setLevel(null); } }
/** Close the file log if any */ public static void closeFile() { if (check()) { file.close(); logger.removeHandler(file); } }
public static void main(String[] args) { // default values String host = ""; String domain = ""; String user = ""; String passwd = ""; int timeout = 5000; int n_measures = 1; int delay = 1000; boolean cpu = false; int cpu_warning = 85; int cpu_critical = 95; boolean memory = false; int mem_warning = 85; int mem_critical = 95; boolean disk = false; int disk_warning = 85; int disk_critical = 95; boolean service = false; String exclude = ""; int serv_critical = 1; int verbose = 1; Level logging = Level.OFF; // create a new parser and add all possible options CmdLineParser parser = new CmdLineParser(); Option host_op = parser.addStringOption('t', "targethost"); Option domain_op = parser.addStringOption('d', "domain"); Option user_op = parser.addStringOption('u', "user"); Option passwd_op = parser.addStringOption('p', "password"); Option timeout_op = parser.addIntegerOption("timeout"); Option n_measures_op = parser.addIntegerOption('n', "number_of_measures"); Option delay_op = parser.addIntegerOption("delay"); Option cpu_op = parser.addBooleanOption("cpu"); Option cpu_warning_op = parser.addIntegerOption("cpu_warning"); Option cpu_critical_op = parser.addIntegerOption("cpu_critical"); Option memory_op = parser.addBooleanOption("memory"); Option mem_warning_op = parser.addIntegerOption("mem_warning"); Option mem_critical_op = parser.addIntegerOption("mem_critical"); Option disk_op = parser.addBooleanOption("disk"); Option disk_warning_op = parser.addIntegerOption("disk_warning"); Option disk_critical_op = parser.addIntegerOption("disk_critical"); Option service_op = parser.addBooleanOption("services"); Option exclude_op = parser.addStringOption('x', "exclude"); Option help_op = parser.addBooleanOption('h', "help"); Option verbose_op = parser.addBooleanOption('v', "verbose"); Option version_op = parser.addBooleanOption('V', "version"); try { // parse the arguments parser.parse(args); } catch (Exception e) { fail(e.getMessage()); } // -h or --help option was given just print helpmessage and exit if ((Boolean) parser.getOptionValue(help_op, false)) { System.out.println(helpmessage); System.exit(0); } // -V or --version option was given just print version information and exit if ((Boolean) parser.getOptionValue(version_op, false)) { System.out.println(version); System.exit(0); } // check if a settingsfile was given and check if it exists if (args.length == 0) fail("Please provide a settingsfile"); String settingsFile = args[0]; if (!new File(settingsFile).exists()) fail("Settingsfile '" + settingsFile + "' not found"); if (parser.getRemainingArgs().length != 1) fail("Syntax error"); // Properties properties = new Properties(); try { properties.load(new FileInputStream(settingsFile)); } catch (IOException e) { fail(e.getMessage()); } try { // get all values host = (String) getValue(parser, properties, host_op, host); domain = (String) getValue(parser, properties, domain_op, domain); user = (String) getValue(parser, properties, user_op, user); passwd = (String) getValue(parser, properties, passwd_op, passwd); timeout = (Integer) getValue(parser, properties, timeout_op, timeout); n_measures = (Integer) getValue(parser, properties, n_measures_op, n_measures); delay = (Integer) getValue(parser, properties, delay_op, delay); cpu = (Boolean) getValue(parser, properties, cpu_op, cpu); cpu_warning = getPercentage((Integer) getValue(parser, properties, cpu_warning_op, cpu_warning)); cpu_critical = getPercentage((Integer) getValue(parser, properties, cpu_critical_op, cpu_critical)); memory = (Boolean) getValue(parser, properties, memory_op, memory); mem_warning = getPercentage((Integer) getValue(parser, properties, mem_warning_op, mem_warning)); mem_critical = getPercentage((Integer) getValue(parser, properties, mem_critical_op, mem_critical)); disk = (Boolean) getValue(parser, properties, disk_op, disk); disk_warning = getPercentage((Integer) getValue(parser, properties, disk_warning_op, disk_warning)); disk_critical = getPercentage((Integer) getValue(parser, properties, disk_critical_op, disk_critical)); service = (Boolean) getValue(parser, properties, service_op, service); exclude = (String) getValue(parser, properties, exclude_op, service); verbose += parser.getOptionValues(verbose_op).size(); } catch (NumberFormatException e) { fail(e.getMessage()); } catch (IllegalOptionValueException e) { fail(e.getMessage()); } catch (IllegalArgumentException e) { fail(e.getMessage()); } // check if all necessary values were given if (host.isEmpty() || domain.isEmpty() || user.isEmpty() || passwd.isEmpty()) { String message = "Following values are missing: "; if (host.isEmpty()) message += "targethost, "; if (domain.isEmpty()) message += "domain, "; if (user.isEmpty()) message += "user, "; if (passwd.isEmpty()) message += "password, "; message = message.substring(0, message.length() - 2); fail(message); } // if the password is a asterisk ask the user for the password if (passwd.equals("*")) { Console cons = System.console(); if (cons == null) fail("must use a console"); System.out.print("Password: "******"getting password failed"); passwd = ""; for (char z : password) passwd += z; java.util.Arrays.fill(password, ' '); } // all warnings and criticals are added to this lists LinkedList<String> warnings = new LinkedList<String>(); LinkedList<String> criticals = new LinkedList<String>(); try { try { // disable console logging JISystem.setInBuiltLogHandler(false); Handler inbuildloghandler = JISystem.getLogger().getHandlers()[0]; JISystem.getLogger().removeHandler(inbuildloghandler); inbuildloghandler.close(); } catch (IOException e) { } catch (SecurityException e) { } JISystem.getLogger().setLevel(logging); if (logging != Level.OFF) { // enable file logging Random r = new Random(); // create a random string with a length of 12 - 13 characters String token = Long.toString(Math.abs(r.nextLong()), 36); try { String tmpdir = System.getProperty("java.io.tmpdir"); // on windows java.io.tmpdir ends with a slash on unix not if (!tmpdir.endsWith(File.separator)) tmpdir = tmpdir + File.separator; FileHandler logFile = new FileHandler(tmpdir + "j-Interop-" + token + ".log"); logFile.setFormatter(new SimpleFormatter()); JISystem.getLogger().addHandler(logFile); } catch (FileNotFoundException e) { System.out.println("ERROR: Failed to open log file: " + e.getMessage()); } catch (SecurityException e) { fail(e, verbose); } catch (IOException e) { fail(e, verbose); } } JISystem.setAutoRegisteration(true); WindowsHealth monitor = new WindowsHealth(host, domain, user, passwd, timeout, verbose > 2); boolean print; if (cpu) monitor.getCPUUsage(); // first measure gives no result for (int i = 0; i < n_measures; i++) { try { Thread.sleep(delay); } catch (InterruptedException e) { break; } if (verbose > 0 && i != 0) { System.out.println(); } if (verbose > 1 && n_measures > 1) System.out.println(" - Measure " + (i + 1) + " -"); // cpu load measure if (cpu) { print = false; int percent_cpu = monitor.getCPUUsage(); if (percent_cpu >= cpu_critical) { criticals.add("CPU (" + percent_cpu + "%)"); print = true; if (verbose > 0) System.out.print("CRITICAL: "); } else if (percent_cpu >= cpu_warning) { warnings.add("CPU (" + percent_cpu + "%)"); print = true; if (verbose > 0) System.out.print("WARNING: "); } if ((print && verbose > 0) || verbose > 1) System.out.println("CPU usage: " + percent_cpu + " %"); } // memory space measure if (memory) { print = false; long mem_size = monitor.getTotalMemorySize(); long mem_free = monitor.getFreeMemorySpace(); long mem_used = mem_size - mem_free; double percent_mem = (double) mem_used / (double) mem_size * 100; if (percent_mem >= mem_critical) { criticals.add("Memory (" + round(percent_mem, 1) + "%)"); print = true; if (verbose > 0) System.out.print("CRITICAL: "); } else if (percent_mem >= mem_warning) { warnings.add("Memory (" + round(percent_mem, 1) + "%)"); print = true; if (verbose > 0) System.out.print("WARNING: "); } if ((print && verbose > 0) || verbose > 1) System.out.println( "Memory: " + round(percent_mem, 2) + " % used (" + mem_used + " KB)"); } // disk space measure if (disk) { LinkedList<IJIDispatch> drives = monitor.getDiskDrives(); for (IJIDispatch drive : drives) { print = false; String name = drive.get("Name").getObjectAsString2(); double disk_free = Long.parseLong(drive.get("FreeSpace").getObjectAsString().getString()); double disk_size = Long.parseLong(drive.get("Size").getObjectAsString().getString()); double disk_used = disk_size - disk_free; double percent_disk = 0; if (disk_size != 0) percent_disk = disk_used / disk_size * 100; else { if (verbose > 1) System.out.println(name); continue; } if (percent_disk >= disk_critical) { criticals.add(name + " (" + round(percent_disk, 1) + "%)"); print = true; if (verbose > 0) System.out.print("CRITICAL: "); } else if (percent_disk >= disk_warning) { warnings.add(name + " (" + round(percent_disk, 1) + "%)"); print = true; if (verbose > 0) System.out.print("WARNING: "); } if ((print && verbose > 0) || verbose > 1) System.out.println( name + " " + round(percent_disk, 3) + " % used (" + getSizeRepresentation(disk_used, 3) + ")"); } } // find services if (service) { LinkedList<IJIDispatch> services = monitor.getServices(); LinkedList<IJIDispatch> services_final = new LinkedList<IJIDispatch>(); Scanner scanner = new Scanner(exclude); scanner.useDelimiter("\\s*,\\s*"); LinkedList<String> exclusions = new LinkedList<String>(); while (scanner.hasNext()) exclusions.add(scanner.next()); for (IJIDispatch service_dispatch : services) { String name = service_dispatch.get("DisplayName").getObjectAsString2(); if (!exclusions.contains(name)) services_final.add(service_dispatch); } int size = services_final.size(); String name; String serv = "services ("; for (IJIDispatch service_dispatch : services_final) { name = service_dispatch.get("DisplayName").getObjectAsString2(); serv += name + ";"; } serv += ")"; if (size >= serv_critical) { criticals.add(serv); } else if (verbose == 1) continue; if (verbose >= 1) { if (size >= serv_critical) System.out.print("CRITICAL: "); if (verbose == 1) { System.out.print(size + " service(s) ("); for (IJIDispatch service_dispatch : services_final) { name = service_dispatch.get("DisplayName").getObjectAsString2(); System.out.print(name + ";"); } System.out.println(") are/is not running"); } else { System.out.print(size + " problem(s) with services"); if (services_final.size() == 0) System.out.println("."); else System.out.println(":"); for (IJIDispatch service_dispatch : services_final) { name = service_dispatch.get("DisplayName").getObjectAsString2(); System.out.println(" service '" + name + "' is not running"); } } } } } // output a summary if (verbose < 1) { if (warnings.size() > 0) { System.out.print("WARNINGS:"); for (String w : warnings) { System.out.print(" " + w + ";"); } } if (criticals.size() > 0) { System.out.print(" CRITICALS:"); for (String c : criticals) { System.out.print(" " + c + ";"); } } if (warnings.size() == 0 && criticals.size() == 0) System.out.print("ALL OK"); System.out.println(); } else { if (warnings.size() == 0 && criticals.size() == 0) System.out.println("ALL OK"); else { System.out.println(); System.out.print("" + warnings.size() + " warnings and "); System.out.println("" + criticals.size() + " criticals."); } } } catch (UnknownHostException e) { fail("Unknown host: " + host, e, verbose); } catch (JIAutomationException e) { JIExcepInfo f = e.getExcepInfo(); fail(f.getExcepDesc() + "0x" + Integer.toHexString(f.getErrorCode()) + " ]", e, verbose); } catch (JIException e) { if (e.getCause().getClass().equals(SocketTimeoutException.class)) fail("Timeout error", e, verbose); else fail(e, verbose); } // if there are one or more criticals exit with exit status 2 if (criticals.size() != 0) System.exit(2); // if there are one or more warnings exit with exit status 1 if (warnings.size() != 0) System.exit(1); // otherwise exit with exit status 0 System.exit(0); }
@Override public void close() throws SecurityException { for (Handler target : this.targets) { target.close(); } }
private static void removeLogHandler(Handler handler) { Logger.getLogger("").removeHandler(handler); handler.close(); }
@Override public synchronized void stop(final StopContext context) { final Handler handler = value; handler.close(); value = null; }
public static void stopLogging() { for (final Handler h : INSTANCE.getHandlers()) { h.close(); INSTANCE.removeHandler(h); } }