I can do that, but I wonder if the current state of the API is expected to
be stable from now till the 2.0 GA release?


On Wed, May 14, 2014 at 8:21 PM, Gary Gregory <garydgreg...@gmail.com>wrote:

> Time to create a Jira and attach a patch for a new module then.
>
> Will you be able to maintain it?
>
> Gary
>
>
> -------- Original message --------
> From: Mikael Ståldal
> Date:05/14/2014 12:26 (GMT-05:00)
> To: Log4J
> Subject: Log4j 2 plugin to Liquibase
>
> 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
>



-- 
Mikael Ståldal
Chief Software Architect
*Appear*
Phone: +46 8 545 91 572
Email: mikael.stal...@appearnetworks.com

Reply via email to