Alon Bar-Lev has posted comments on this change. Change subject: core: Add common methods for runtime log4j setup ......................................................................
Patch Set 1: (7 comments) http://gerrit.ovirt.org/#/c/26588/1/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/log/Log4jUtils.java File backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/log/Log4jUtils.java: Line 28: */ Line 29: public static void setupLogging(String log4jConfig, URL defaultUrl) { Line 30: try { Line 31: URL url = defaultUrl; Line 32: if (!StringUtils.isBlank(log4jConfig)) { isEmpty? Do you reject file name " " ? :) Line 33: File f = new File(log4jConfig); Line 34: if (f.exists()) { Line 35: url = f.toURI().toURL(); Line 36: } else { Line 34: if (f.exists()) { Line 35: url = f.toURI().toURL(); Line 36: } else { Line 37: url = new URL(log4jConfig); Line 38: } are you sure this is valid check? can't you check if it is URL based on pattern? why go into filesystem for http://xxx/xxx by mistake you will have this file. why not accept only URL if this what we need? Line 39: } Line 40: LogManager.resetConfiguration(); Line 41: DOMConfigurator.configure(url); Line 42: } catch (IOException | FactoryConfigurationError ex) { Line 51: * file name to log into Line 52: * @param levelName Line 53: * log level to use Line 54: */ Line 55: public static void setupFileAppender(String fileName, String levelName) { addFileAppender? Line 56: if (StringUtils.isNotBlank(fileName)) { Line 57: Level level; Line 58: if (StringUtils.isBlank(levelName)) { Line 59: level = Level.DEBUG; Line 52: * @param levelName Line 53: * log level to use Line 54: */ Line 55: public static void setupFileAppender(String fileName, String levelName) { Line 56: if (StringUtils.isNotBlank(fileName)) { again... should be empty not blank Line 57: Level level; Line 58: if (StringUtils.isBlank(levelName)) { Line 59: level = Level.DEBUG; Line 60: } else { Line 55: public static void setupFileAppender(String fileName, String levelName) { Line 56: if (StringUtils.isNotBlank(fileName)) { Line 57: Level level; Line 58: if (StringUtils.isBlank(levelName)) { Line 59: level = Level.DEBUG; default should be info Line 60: } else { Line 61: level = Level.toLevel(levelName, null); Line 62: if (level == null) { Line 63: throw new IllegalArgumentException(String.format("Invalid log level value: '%s'", levelName)); Line 67: FileAppender fa = null; Line 68: try { Line 69: fa = new FileAppender(new PatternLayout("%d %-5p [%c] %m%n"), fileName, true); Line 70: fa.setThreshold(level); Line 71: } catch (SecurityException | IOException ex) { I think this try/catch should wrap entire function not this place, as there is no value in evaluate this specific statement. Line 72: throw new IllegalArgumentException( Line 73: String.format("Error accessing log file '%s': '%s'", fileName, ex.getMessage()), Line 74: ex); Line 75: } Line 77: Logger rootLogger = Logger.getRootLogger(); Line 78: if (rootLogger.getLevel() == Level.OFF) { Line 79: // by default it's set to OFF, so we need to enabled it before adding appender Line 80: rootLogger.setLevel(Level.ALL); Line 81: } if it is off, it means the user wants it off, we do not touch it. Line 82: rootLogger.addAppender(fa); Line 83: } Line 84: } -- To view, visit http://gerrit.ovirt.org/26588 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: Ic00ea0af643e8c978fd67eb8c56e2329d43e776d Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Martin Peřina <mper...@redhat.com> Gerrit-Reviewer: Alon Bar-Lev <alo...@redhat.com> Gerrit-Reviewer: Eli Mesika <emes...@redhat.com> Gerrit-Reviewer: Martin Peřina <mper...@redhat.com> Gerrit-Reviewer: Oved Ourfali <oourf...@redhat.com> Gerrit-Reviewer: automat...@ovirt.org Gerrit-Reviewer: oVirt Jenkins CI Server Gerrit-HasComments: Yes _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches