On Thu, May 15, 2014 at 5:39 AM, Mikael Ståldal < mikael.stal...@appearnetworks.com> wrote:
> Yes, this is currently based on 2.0-rc1. > You'd better check out trunk, adjust and build against that... Gary > > On Wed, May 14, 2014 at 6:55 PM, Matt Sicker <boa...@gmail.com> wrote: > >> Looks like you'll have to update it for the current API (which will be >> finalized with 2.0). >> >> >> On 14 May 2014 11:26, Mikael Ståldal >> <mikael.stal...@appearnetworks.com>wrote: >> >>> I have made an Log4j 2 plugin to Liquibase (http://www.liquibase.org/). >>> >>> It seems like the Liquibase project don't want this kind of stuff in >>> their own project, they seems to encourage third-party plugins. >>> >>> But I would like this to be available as a public Maven dependency. So I >>> wonder if it's possible to include it as part of the Log4j project (as I >>> separate module I guess)? >>> >>> I have signed an Apache CLA, and I am willing to contribute the code. >>> >>> (The class have to be in the liquibase package in order for the >>> Liquibase plugin discovery to work.) >>> >>> >>> /* >>> * Copyright (c) 2014, Appear Networks. All Rights Reserved. >>> * >>> * Licensed 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 liquibase.ext.logging.log4j2; >>> >>> import liquibase.changelog.ChangeSet; >>> import liquibase.changelog.DatabaseChangeLog; >>> import liquibase.logging.core.AbstractLogger; >>> import org.apache.logging.log4j.LogManager; >>> import org.apache.logging.log4j.Logger; >>> >>> /** >>> * Logging to Log4j 2.x. >>> */ >>> public class Log4j2Logger extends AbstractLogger { >>> >>> private Logger logger; >>> private String changeLogName = null; >>> private String changeSetName = null; >>> >>> @Override >>> public int getPriority() { >>> return 5; >>> } >>> >>> @Override >>> public void setName(String name) { >>> logger = LogManager.getLogger(name); >>> } >>> >>> @Override >>> public void setChangeLog(DatabaseChangeLog databaseChangeLog) { >>> if (databaseChangeLog == null) { >>> changeLogName = null; >>> } else { >>> changeLogName = databaseChangeLog.getFilePath(); >>> } >>> } >>> >>> @Override >>> public void setChangeSet(ChangeSet changeSet) { >>> changeSetName = (changeSet == null ? null : >>> changeSet.toString(false)); >>> } >>> >>> @Override >>> public void setLogLevel(String logLevel, String logFile) { >>> setLogLevel(logLevel); >>> // ignore logFile >>> } >>> >>> @Override >>> public void severe(String message) { >>> if (logger.isErrorEnabled()) { >>> logger.error(formatMessage(message)); >>> } >>> } >>> >>> @Override >>> public void severe(String message, Throwable e) { >>> if (logger.isErrorEnabled()) { >>> logger.error(formatMessage(message), e); >>> } >>> } >>> >>> @Override >>> public void warning(String message) { >>> if (logger.isWarnEnabled()) { >>> logger.warn(formatMessage(message)); >>> } >>> } >>> >>> @Override >>> public void warning(String message, Throwable e) { >>> if (logger.isWarnEnabled()) { >>> logger.warn(formatMessage(message), e); >>> } >>> } >>> >>> @Override >>> public void info(String message) { >>> if (logger.isInfoEnabled()) { >>> logger.info(formatMessage(message)); >>> } >>> } >>> >>> @Override >>> public void info(String message, Throwable e) { >>> if (logger.isInfoEnabled()) { >>> logger.info(formatMessage(message), e); >>> } >>> } >>> >>> @Override >>> public void debug(String message) { >>> if (logger.isDebugEnabled()) { >>> logger.debug(formatMessage(message)); >>> } >>> } >>> >>> @Override >>> public void debug(String message, Throwable e) { >>> if (logger.isDebugEnabled()) { >>> logger.debug(formatMessage(message), e); >>> } >>> } >>> >>> private String formatMessage(String message) { >>> StringBuilder buffer = new StringBuilder(); >>> if (changeLogName != null) { >>> buffer.append(changeLogName); >>> buffer.append(": "); >>> } >>> if (changeSetName != null) { >>> buffer.append(changeSetName.replace(changeLogName + "::", >>> "")); >>> buffer.append(": "); >>> } >>> buffer.append(message); >>> return buffer.toString(); >>> } >>> } >>> >>> >>> >>> >>> >>> >>> -- >>> Mikael Ståldal >>> Chief Software Architect >>> *Appear* >>> Phone: +46 8 545 91 572 >>> Email: mikael.stal...@appearnetworks.com >>> >> >> >> >> -- >> Matt Sicker <boa...@gmail.com> >> > > > > -- > Mikael Ståldal > Chief Software Architect > *Appear* > Phone: +46 8 545 91 572 > Email: mikael.stal...@appearnetworks.com > -- E-Mail: garydgreg...@gmail.com | ggreg...@apache.org Java Persistence with Hibernate, Second Edition<http://www.manning.com/bauer3/> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/> Spring Batch in Action <http://www.manning.com/templier/> Blog: http://garygregory.wordpress.com Home: http://garygregory.com/ Tweet! http://twitter.com/GaryGregory