use of org.apache.log4j.PatternLayout in project databus by linkedin.
the class TestUtil method setupLogging.
public static void setupLogging(boolean logToConsole, String fileLogPath, Level logLevel) {
PatternLayout defaultLayout = new PatternLayout("%d{ISO8601} [%t] (%p) {%c{1}} %m%n");
Logger.getRootLogger().removeAllAppenders();
if (logToConsole) {
ConsoleAppender defaultAppender = new ConsoleAppender(defaultLayout);
Logger.getRootLogger().addAppender(defaultAppender);
}
if (null != fileLogPath && 0 < fileLogPath.length()) {
File logFile = new File(fileLogPath);
if (null != logFile.getParentFile() && !logFile.getParentFile().exists()) {
if (!logFile.getParentFile().mkdirs()) {
Logger.getRootLogger().error("unable to create parent directory for log file: " + logFile);
}
}
FileAppender fileAppender = null;
try {
fileAppender = new FileAppender(defaultLayout, fileLogPath);
} catch (IOException io) {
Logger.getRootLogger().error(io);
}
if (null != fileAppender)
Logger.getRootLogger().addAppender(fileAppender);
}
Logger.getRootLogger().setLevel(logLevel);
}
use of org.apache.log4j.PatternLayout in project databus by linkedin.
the class BaseCli method processCommandLineArgs.
/**
* Parses the command line arguments
* @param cliArgs the command line arguments
* @return true iff parsing was successful
*/
public boolean processCommandLineArgs(String[] cliArgs) {
constructCommandLineOptions();
CommandLineParser cliParser = new GnuParser();
_cmd = null;
try {
_cmd = cliParser.parse(_cliOptions, cliArgs);
} catch (ParseException pe) {
printError("failed to parse command-line options: " + pe.toString(), true);
return false;
}
if (_cmd.hasOption(HELP_OPT_CHAR)) {
printCliHelp();
return false;
}
int verbosityInc = 0;
if (_cmd.hasOption(VERBOSE3_OPT_LONG_NAME)) {
// -vvv is always Level.ALL
verbosityInc = VERBOSITIES.length;
} else if (_cmd.hasOption(VERBOSE2_OPT_LONG_NAME)) {
verbosityInc = 2;
} else if (_cmd.hasOption(VERBOSE1_OPT_LONG_NAME)) {
verbosityInc = 1;
}
Level effectiveLevel = VERBOSITIES[Math.min(_defaultLogLevelIdx + verbosityInc, VERBOSITIES.length - 1)];
if (_cmd.hasOption(QUIET_OPT_CHAR)) {
effectiveLevel = Level.OFF;
}
Logger.getRootLogger().setLevel(effectiveLevel);
if (_cmd.hasOption(LOG4J_PROPS_OPT_CHAR)) {
String log4jPropFile = _cmd.getOptionValue(LOG4J_PROPS_OPT_CHAR);
PropertyConfigurator.configure(log4jPropFile);
_log.debug("Using custom logging settings from file " + log4jPropFile);
} else {
PatternLayout defaultLayout = new PatternLayout("%d{ISO8601} +%r [%t] (%p) {%c{1}} %m%n");
ConsoleAppender defaultAppender = new ConsoleAppender(defaultLayout);
Logger.getRootLogger().removeAllAppenders();
Logger.getRootLogger().addAppender(defaultAppender);
_log.debug("Using default logging settings");
}
processProperties();
return true;
}
use of org.apache.log4j.PatternLayout in project databus by linkedin.
the class BootstrapSeederMain method parseArgs.
@SuppressWarnings("static-access")
public static void parseArgs(String[] args) throws IOException {
CommandLineParser cliParser = new GnuParser();
Option helpOption = OptionBuilder.withLongOpt(HELP_OPT_LONG_NAME).withDescription("Help screen").create(HELP_OPT_CHAR);
Option sourcesOption = OptionBuilder.withLongOpt(PHYSICAL_CONFIG_OPT_LONG_NAME).withDescription("Bootstrap producer properties to use").hasArg().withArgName("property_file").create(PHYSICAL_CONFIG_OPT_CHAR);
Option dbOption = OptionBuilder.withLongOpt(BOOTSTRAP_DB_PROPS_OPT_LONG_NAME).withDescription("Bootstrap producer properties to use").hasArg().withArgName("property_file").create(BOOTSTRAP_DB_PROP_OPT_CHAR);
Option log4jPropsOption = OptionBuilder.withLongOpt(LOG4J_PROPS_OPT_LONG_NAME).withDescription("Log4j properties to use").hasArg().withArgName("property_file").create(LOG4J_PROPS_OPT_CHAR);
Option validationType = OptionBuilder.withLongOpt(VALIDATION_TYPE_OPT_LONG_NAME).withDescription("Type of validation algorithm , normal[cmp two sorted streams of oracle and bootstrap db] or point[entry in bootstrap checked in oracle]").hasArg().withArgName("validation_type").create(VALIDATION_TYPE_OPT_CHAR);
Option validationSamplePct = OptionBuilder.withLongOpt(VALIDATION_SAMPLE_PCT_LONG_NAME).withDescription("Validation sample pct ,0.0 to 100.00 [100.0]").hasArg().withArgName("validation_sample_pct").create(VALIDATION_SAMPLE_PCT_CHAR);
Options options = new Options();
options.addOption(helpOption);
options.addOption(sourcesOption);
options.addOption(dbOption);
options.addOption(log4jPropsOption);
options.addOption(validationType);
options.addOption(validationSamplePct);
CommandLine cmd = null;
try {
cmd = cliParser.parse(options, args);
} catch (ParseException pe) {
LOG.fatal("Bootstrap Physical Config: failed to parse command-line options.", pe);
throw new RuntimeException("Bootstrap Physical Config: failed to parse command-line options.", pe);
}
if (cmd.hasOption(LOG4J_PROPS_OPT_CHAR)) {
String log4jPropFile = cmd.getOptionValue(LOG4J_PROPS_OPT_CHAR);
PropertyConfigurator.configure(log4jPropFile);
LOG.info("Using custom logging settings from file " + log4jPropFile);
} else {
PatternLayout defaultLayout = new PatternLayout("%d{ISO8601} +%r [%t] (%p) {%c} %m%n");
ConsoleAppender defaultAppender = new ConsoleAppender(defaultLayout);
Logger.getRootLogger().removeAllAppenders();
Logger.getRootLogger().addAppender(defaultAppender);
// using info as the default log level
Logger.getRootLogger().setLevel(Level.INFO);
LOG.info("Using default logging settings. Log Level is :" + Logger.getRootLogger().getLevel());
}
if (cmd.hasOption(HELP_OPT_CHAR)) {
printCliHelp(options);
System.exit(0);
}
if (!cmd.hasOption(PHYSICAL_CONFIG_OPT_CHAR))
throw new RuntimeException("Sources Config is not provided; use --help for usage");
if (!cmd.hasOption(BOOTSTRAP_DB_PROP_OPT_CHAR))
throw new RuntimeException("Bootstrap config is not provided; use --help for usage");
_sSourcesConfigFile = cmd.getOptionValue(PHYSICAL_CONFIG_OPT_CHAR);
String propFile = cmd.getOptionValue(BOOTSTRAP_DB_PROP_OPT_CHAR);
LOG.info("Loading bootstrap DB config from properties file " + propFile);
_sBootstrapConfigProps = new Properties();
_sBootstrapConfigProps.load(new FileInputStream(propFile));
if (!cmd.hasOption(VALIDATION_TYPE_OPT_CHAR)) {
_validationType = "normal";
} else {
String vtype = cmd.getOptionValue(VALIDATION_TYPE_OPT_CHAR);
if (vtype.equals("point") || vtype.equals("normal") || vtype.equals("pointBs")) {
_validationType = vtype;
} else {
throw new RuntimeException("Validation type has to be one of 'normal' or 'point' or 'pointBs'");
}
}
if (cmd.hasOption(VALIDATION_SAMPLE_PCT_CHAR)) {
try {
_validationSamplePct = Double.parseDouble(cmd.getOptionValue(VALIDATION_SAMPLE_PCT_CHAR));
if (_validationSamplePct < 0.0 || _validationSamplePct > 100.0) {
throw new RuntimeException("Error in specifying: " + VALIDATION_SAMPLE_PCT_LONG_NAME + "Should be between 0.0 and 100.0. It was " + _validationSamplePct);
}
} catch (NumberFormatException e) {
throw new RuntimeException("Error in specifying: " + VALIDATION_SAMPLE_PCT_LONG_NAME + " Exception:" + e);
}
} else {
_validationSamplePct = 100.0;
}
}
use of org.apache.log4j.PatternLayout in project databus by linkedin.
the class BootstrapAddSource method parseArgs.
@SuppressWarnings("static-access")
public static Config parseArgs(String[] args) throws Exception {
CommandLineParser cliParser = new GnuParser();
Option helpOption = OptionBuilder.withLongOpt(HELP_OPT_LONG_NAME).withDescription("Help screen").create(HELP_OPT_CHAR);
Option sourceIdOption = OptionBuilder.withLongOpt(SOURCE_ID_OPT_LONG_NAME).withDescription("Source ID for which tables need to be added").hasArg().withArgName("Source ID").create(SOURCE_ID_OPT_CHAR);
Option sourceNameOption = OptionBuilder.withLongOpt(SOURCE_NAME_OPT_LONG_NAME).withDescription("Source Name for which tables need to be added").hasArg().withArgName("Source ID").create(SOURCE_NAME_OPT_CHAR);
Option dbOption = OptionBuilder.withLongOpt(BOOTSTRAP_DB_PROPS_OPT_LONG_NAME).withDescription("Bootstrap producer properties to use").hasArg().withArgName("property_file").create(BOOTSTRAP_DB_PROP_OPT_CHAR);
Option cmdLinePropsOption = OptionBuilder.withLongOpt(CMD_LINE_PROPS_OPT_LONG_NAME).withDescription("Cmd line override of config properties. Semicolon separated.").hasArg().withArgName("Semicolon_separated_properties").create(CMD_LINE_PROPS_OPT_CHAR);
Option log4jPropsOption = OptionBuilder.withLongOpt(LOG4J_PROPS_OPT_LONG_NAME).withDescription("Log4j properties to use").hasArg().withArgName("property_file").create(LOG4J_PROPS_OPT_CHAR);
Options options = new Options();
options.addOption(helpOption);
options.addOption(sourceIdOption);
options.addOption(sourceNameOption);
options.addOption(dbOption);
options.addOption(cmdLinePropsOption);
options.addOption(log4jPropsOption);
CommandLine cmd = null;
try {
cmd = cliParser.parse(options, args);
} catch (ParseException pe) {
LOG.error("Bootstrap Physical Config: failed to parse command-line options.", pe);
throw new RuntimeException("Bootstrap Physical Config: failed to parse command-line options.", pe);
}
if (cmd.hasOption(LOG4J_PROPS_OPT_CHAR)) {
String log4jPropFile = cmd.getOptionValue(LOG4J_PROPS_OPT_CHAR);
PropertyConfigurator.configure(log4jPropFile);
LOG.info("Using custom logging settings from file " + log4jPropFile);
} else {
PatternLayout defaultLayout = new PatternLayout("%d{ISO8601} +%r [%t] (%p) {%c} %m%n");
ConsoleAppender defaultAppender = new ConsoleAppender(defaultLayout);
Logger.getRootLogger().removeAllAppenders();
Logger.getRootLogger().addAppender(defaultAppender);
LOG.info("Using default logging settings");
}
if (cmd.hasOption(HELP_OPT_CHAR)) {
printCliHelp(options);
System.exit(0);
}
if (!cmd.hasOption(SOURCE_ID_OPT_CHAR))
throw new RuntimeException("Source ID is not provided");
if (!cmd.hasOption(SOURCE_NAME_OPT_CHAR))
throw new RuntimeException("Source Name is not provided");
if (!cmd.hasOption(BOOTSTRAP_DB_PROP_OPT_CHAR))
throw new RuntimeException("Bootstrap config is not provided");
String propFile = cmd.getOptionValue(BOOTSTRAP_DB_PROP_OPT_CHAR);
LOG.info("Loading bootstrap DB config from properties file " + propFile);
_sBootstrapConfigProps = new Properties();
FileInputStream f = new FileInputStream(propFile);
try {
_sBootstrapConfigProps.load(f);
} finally {
f.close();
}
if (cmd.hasOption(CMD_LINE_PROPS_OPT_CHAR)) {
String cmdLinePropString = cmd.getOptionValue(CMD_LINE_PROPS_OPT_CHAR);
updatePropsFromCmdLine(_sBootstrapConfigProps, cmdLinePropString);
}
int srcId = Integer.parseInt(cmd.getOptionValue(SOURCE_ID_OPT_CHAR));
String srcName = cmd.getOptionValue(SOURCE_NAME_OPT_CHAR);
BootstrapConfig config = new BootstrapConfig();
ConfigLoader<BootstrapReadOnlyConfig> configLoader = new ConfigLoader<BootstrapReadOnlyConfig>("bootstrap.", config);
BootstrapReadOnlyConfig staticConfig = configLoader.loadConfig(_sBootstrapConfigProps);
Config cfg = new Config();
cfg.setDbConfig(staticConfig);
cfg.setSrcId(srcId);
cfg.setSrcName(srcName);
return cfg;
}
use of org.apache.log4j.PatternLayout in project databus by linkedin.
the class BootstrapDBCleanerMain method parseArgs.
@SuppressWarnings("static-access")
public static void parseArgs(String[] args) throws IOException {
CommandLineParser cliParser = new GnuParser();
Option helpOption = OptionBuilder.withLongOpt(HELP_OPT_LONG_NAME).withDescription("Help screen").create(HELP_OPT_CHAR);
Option dbOption = OptionBuilder.withLongOpt(BOOTSTRAP_DB_PROPS_OPT_LONG_NAME).withDescription("Bootstrap Cleaner and DB properties to use").hasArg().withArgName("property_file").create(BOOTSTRAP_DB_PROP_OPT_CHAR);
Option cmdLinePropsOption1 = OptionBuilder.withLongOpt(CLEANER_CMD_LINE_PROPS_OPT_LONG_NAME).withDescription("Cmd line override of cleaner config properties. Semicolon separated.").hasArg().withArgName("Semicolon_separated_properties").create(CLEANER_CMD_LINE_PROPS_OPT_CHAR);
Option log4jPropsOption = OptionBuilder.withLongOpt(LOG4J_PROPS_OPT_LONG_NAME).withDescription("Log4j properties to use").hasArg().withArgName("property_file").create(LOG4J_PROPS_OPT_CHAR);
Option sourcesOption = OptionBuilder.withLongOpt(BOOTSTRAP_SOURCES_OPT_LONG_NAME).withDescription("Comma seperated list of sourceNames. If not provided, no source will be cleaned up").hasArg().withArgName("comma-seperated sources").create(BOOTSTRAP_SOURCES_PROP_OPT_CHAR);
Options options = new Options();
options.addOption(helpOption);
options.addOption(dbOption);
options.addOption(cmdLinePropsOption1);
options.addOption(log4jPropsOption);
options.addOption(sourcesOption);
CommandLine cmd = null;
try {
cmd = cliParser.parse(options, args);
} catch (ParseException pe) {
LOG.error("Bootstrap Physical Config: failed to parse command-line options.", pe);
throw new RuntimeException("Bootstrap Physical Config: failed to parse command-line options.", pe);
}
if (cmd.hasOption(LOG4J_PROPS_OPT_CHAR)) {
String log4jPropFile = cmd.getOptionValue(LOG4J_PROPS_OPT_CHAR);
PropertyConfigurator.configure(log4jPropFile);
LOG.info("Using custom logging settings from file " + log4jPropFile);
} else {
PatternLayout defaultLayout = new PatternLayout("%d{ISO8601} +%r [%t] (%p) {%c} %m%n");
ConsoleAppender defaultAppender = new ConsoleAppender(defaultLayout);
Logger.getRootLogger().removeAllAppenders();
Logger.getRootLogger().addAppender(defaultAppender);
LOG.info("Using default logging settings");
}
if (cmd.hasOption(HELP_OPT_CHAR)) {
printCliHelp(options);
System.exit(0);
}
if (cmd.hasOption(BOOTSTRAP_SOURCES_PROP_OPT_CHAR)) {
_sSources = new ArrayList<String>();
String srcListStr = cmd.getOptionValue(BOOTSTRAP_SOURCES_PROP_OPT_CHAR);
LOG.info("Going to run cleaner for only these sources : " + srcListStr);
String[] srcList = srcListStr.split(",");
for (String s : srcList) _sSources.add(s);
}
if (!cmd.hasOption(BOOTSTRAP_DB_PROP_OPT_CHAR))
throw new RuntimeException("Bootstrap config is not provided");
String propFile = cmd.getOptionValue(BOOTSTRAP_DB_PROP_OPT_CHAR);
LOG.info("Loading bootstrap DB config from properties file " + propFile);
_sBootstrapConfigProps = new Properties();
FileInputStream f = new FileInputStream(propFile);
try {
_sBootstrapConfigProps.load(f);
} finally {
f.close();
}
if (cmd.hasOption(CLEANER_CMD_LINE_PROPS_OPT_CHAR)) {
String cmdLinePropString = cmd.getOptionValue(CLEANER_CMD_LINE_PROPS_OPT_CHAR);
updatePropsFromCmdLine(_sBootstrapConfigProps, cmdLinePropString);
}
}
Aggregations