diff --git a/ql/src/java/org/apache/hadoop/hive/ql/log/PidDailyRollingFileAppender.java b/ql/src/java/org/apache/hadoop/hive/ql/log/PidDailyRollingFileAppender.java deleted file mode 100644 index 6a59d4a..0000000 --- a/ql/src/java/org/apache/hadoop/hive/ql/log/PidDailyRollingFileAppender.java +++ /dev/null @@ -1,33 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.hadoop.hive.ql.log; - -import java.lang.management.ManagementFactory; -import java.lang.management.RuntimeMXBean; - -import org.apache.log4j.DailyRollingFileAppender; - -public class PidDailyRollingFileAppender extends DailyRollingFileAppender { - - @Override - public void setFile(String file) { - RuntimeMXBean rt = ManagementFactory.getRuntimeMXBean(); - super.setFile(file + '.' + rt.getName()); - } -} diff --git a/ql/src/java/org/apache/hadoop/hive/ql/log/PidFilePatternConverter.java b/ql/src/java/org/apache/hadoop/hive/ql/log/PidFilePatternConverter.java new file mode 100644 index 0000000..898e056 --- /dev/null +++ b/ql/src/java/org/apache/hadoop/hive/ql/log/PidFilePatternConverter.java @@ -0,0 +1,60 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + *

+ * http://www.apache.org/licenses/LICENSE-2.0 + *

+ * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.hadoop.hive.ql.log; + +import java.lang.management.ManagementFactory; + +import org.apache.logging.log4j.core.config.plugins.Plugin; +import org.apache.logging.log4j.core.pattern.AbstractPatternConverter; +import org.apache.logging.log4j.core.pattern.ArrayPatternConverter; +import org.apache.logging.log4j.core.pattern.ConverterKeys; + +/** + * FilePattern converter that converts %pid pattern to @ information + * obtained at runtime. + * + * Example usage: + * + * + * Will generate output file with name containing @ like below + * test.log.95232@localhost.gz + */ +@Plugin(name = "PidFilePatternConverter", category = "FileConverter") +@ConverterKeys({ "pid" }) +public class PidFilePatternConverter extends AbstractPatternConverter implements + ArrayPatternConverter { + + /** + * Private constructor. + */ + private PidFilePatternConverter() { + super("pid", "pid"); + } + + public static PidFilePatternConverter newInstance() { + return new PidFilePatternConverter(); + } + + public void format(StringBuilder toAppendTo, Object... objects) { + toAppendTo.append(ManagementFactory.getRuntimeMXBean().getName()); + } + + public void format(Object obj, StringBuilder toAppendTo) { + toAppendTo.append(ManagementFactory.getRuntimeMXBean().getName()); + } +}