Added: logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/slf4j-impl/src/main/java/org/slf4j/helpers/Log4JMDCAdapter.java URL: http://svn.apache.org/viewvc/logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/slf4j-impl/src/main/java/org/slf4j/helpers/Log4JMDCAdapter.java?rev=1067833&view=auto ============================================================================== --- logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/slf4j-impl/src/main/java/org/slf4j/helpers/Log4JMDCAdapter.java (added) +++ logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/slf4j-impl/src/main/java/org/slf4j/helpers/Log4JMDCAdapter.java Mon Feb 7 01:11:40 2011 @@ -0,0 +1,62 @@ +/* + * 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.slf4j.helpers; + +import org.apache.logging.log4j.ThreadContext; +import org.slf4j.spi.MDCAdapter; + +import java.util.HashMap; +import java.util.Map; + +/** + * + */ +public class Log4JMDCAdapter implements MDCAdapter { + + public void put(String key, String val) { + ThreadContext.put(key, val); + } + + public String get(String key) { + return ThreadContext.get(key).toString(); + } + + public void remove(String key) { + ThreadContext.remove(key); + } + + public void clear() { + ThreadContext.clear(); + } + + public Map getCopyOfContextMap() { + Map<String, Object> ctx = ThreadContext.getContext(); + Map<String, String> map = new HashMap<String, String>(); + + for (Map.Entry<String, Object>entry : ctx.entrySet()) { + map.put(entry.getKey(), entry.getValue().toString()); + } + return map; + } + + public void setContextMap(Map map) { + ThreadContext.clear(); + for (Map.Entry<String, String> entry : ((Map<String, String>) map).entrySet()) { + ThreadContext.put(entry.getKey(), entry.getValue()); + } + } +}
Added: logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/slf4j-impl/src/main/java/org/slf4j/helpers/Log4JMarkerFactory.java URL: http://svn.apache.org/viewvc/logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/slf4j-impl/src/main/java/org/slf4j/helpers/Log4JMarkerFactory.java?rev=1067833&view=auto ============================================================================== --- logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/slf4j-impl/src/main/java/org/slf4j/helpers/Log4JMarkerFactory.java (added) +++ logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/slf4j-impl/src/main/java/org/slf4j/helpers/Log4JMarkerFactory.java Mon Feb 7 01:11:40 2011 @@ -0,0 +1,54 @@ +/* + * 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.slf4j.helpers; + +import org.slf4j.IMarkerFactory; +import org.slf4j.Marker; + +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ConcurrentMap; + +/** + * + */ +public class Log4JMarkerFactory implements IMarkerFactory { + + private ConcurrentMap<String, Marker> markerMap = new ConcurrentHashMap<String, Marker>(); + + public Marker getMarker(String name) { + if (name == null) { + throw new IllegalArgumentException("Marker name must not be null"); + } + Marker marker = markerMap.get(name); + if (marker == null) { + marker = new MarkerWrapper(name); + } + return marker; + } + + public boolean exists(String name) { + return markerMap.containsKey(name); + } + + public boolean detachMarker(String name) { + return false; + } + + public Marker getDetachedMarker(String name) { + return new MarkerWrapper(name); + } +} Added: logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/slf4j-impl/src/main/java/org/slf4j/helpers/MarkerWrapper.java URL: http://svn.apache.org/viewvc/logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/slf4j-impl/src/main/java/org/slf4j/helpers/MarkerWrapper.java?rev=1067833&view=auto ============================================================================== --- logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/slf4j-impl/src/main/java/org/slf4j/helpers/MarkerWrapper.java (added) +++ logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/slf4j-impl/src/main/java/org/slf4j/helpers/MarkerWrapper.java Mon Feb 7 01:11:40 2011 @@ -0,0 +1,54 @@ +/* + * 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.slf4j.helpers; + +import org.apache.logging.log4j.Marker; + +/** + * + */ +public class MarkerWrapper extends BasicMarker implements Marker { + private static final long serialVersionUID = 1903952589649545191L; + + private MarkerWrapper parent; + + MarkerWrapper(String name) { + super(name); + } + + @Override + public void add(org.slf4j.Marker reference) { + super.add(reference); + ((MarkerWrapper)reference).setParent(this); + } + + private void setParent(MarkerWrapper marker) { + parent = marker; + } + + public org.apache.logging.log4j.Marker getParent() { + return this.parent; + } + + public boolean isInstanceOf(org.apache.logging.log4j.Marker marker) { + if (marker == null) { + throw new IllegalArgumentException("A marker parameter is required"); + } + + return contains((MarkerWrapper) marker); + } +} Added: logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/slf4j-impl/src/main/java/org/slf4j/impl/Log4JLogger.java URL: http://svn.apache.org/viewvc/logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/slf4j-impl/src/main/java/org/slf4j/impl/Log4JLogger.java?rev=1067833&view=auto ============================================================================== --- logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/slf4j-impl/src/main/java/org/slf4j/impl/Log4JLogger.java (added) +++ logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/slf4j-impl/src/main/java/org/slf4j/impl/Log4JLogger.java Mon Feb 7 01:11:40 2011 @@ -0,0 +1,252 @@ +/* + * 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.slf4j.impl; + +import org.apache.logging.log4j.Level; +import org.apache.logging.log4j.core.Logger; +import org.apache.logging.log4j.core.LoggerContext; +import org.apache.logging.log4j.message.Message; +import org.apache.logging.log4j.message.ParameterizedMessage; +import org.apache.logging.log4j.message.StructuredDataMessage; +import org.slf4j.Marker; +import org.slf4j.MarkerFactory; +import org.slf4j.ext.EventData; +import org.slf4j.spi.LocationAwareLogger; + +import java.util.Map; + +/** + * + */ +public class Log4JLogger extends Logger implements LocationAwareLogger { + + private static final String FQCN = Log4JLogger.class.getName(); + private static Marker EVENT_MARKER = MarkerFactory.getMarker("EVENT"); + private final boolean eventLogger; + + public Log4JLogger(LoggerContext context, String name) { + super(context, name); + eventLogger = "EventLogger".equals(name); + } + + public void log(Marker marker, String fqcn, int i, String s1, Object[] objects, Throwable throwable) { + Message msg; + if (eventLogger && marker != null && marker.contains(EVENT_MARKER)) { + try { + EventData data = (objects != null && objects[0] instanceof EventData) ? (EventData) objects[0] : + new EventData(s1); + msg = new StructuredDataMessage(data.getEventId(), data.getMessage(), data.getEventType()); + for (Map.Entry entry : data.getEventMap().entrySet()) { + String key = entry.getKey().toString(); + if (EventData.EVENT_TYPE.equals(key) || EventData.EVENT_ID.equals(key) || + EventData.EVENT_MESSAGE.equals(key)) { + continue; + } + ((StructuredDataMessage) msg).put(entry.getKey().toString(), entry.getValue().toString()); + } + } catch (Exception ex) { + msg = new ParameterizedMessage(s1, objects, throwable); + } + + } else { + msg = new ParameterizedMessage(s1, objects, throwable); + } + super.log((org.apache.logging.log4j.Marker) marker, fqcn, getLevel(i), msg, throwable); + } + + public void trace(String format, Object o) { + super.trace(format, o); + } + + public void trace(String format, Object arg1, Object arg2) { + super.trace(format, arg1, arg2); + } + + public boolean isTraceEnabled(Marker marker) { + return super.isTraceEnabled((org.apache.logging.log4j.Marker) marker); + } + + public void trace(Marker marker, String s) { + super.trace((org.apache.logging.log4j.Marker) marker, s); + } + + public void trace(Marker marker, String s, Object o) { + super.trace((org.apache.logging.log4j.Marker) marker, s, o); + } + + public void trace(Marker marker, String s, Object o, Object o1) { + super.trace((org.apache.logging.log4j.Marker) marker, s, o, o1); + } + + public void trace(Marker marker, String s, Object[] objects) { + super.trace((org.apache.logging.log4j.Marker) marker, s , objects); + } + + public void trace(Marker marker, String s, Throwable throwable) { + super.trace((org.apache.logging.log4j.Marker) marker, s, throwable); + } + + public void debug(String format, Object o) { + super.debug(format, o); + } + + public void debug(String format, Object o, Object o1) { + super.debug(format, o, o1); + } + + public boolean isDebugEnabled(Marker marker) { + return super.isDebugEnabled((org.apache.logging.log4j.Marker) marker); + } + + public void debug(Marker marker, String s) { + super.debug((org.apache.logging.log4j.Marker) marker, s); + } + + public void debug(Marker marker, String s, Object o) { + super.debug((org.apache.logging.log4j.Marker) marker, s, o); + } + + public void debug(Marker marker, String s, Object o, Object o1) { + super.debug((org.apache.logging.log4j.Marker) marker, s, o, o1); + } + + public void debug(Marker marker, String s, Object[] objects) { + super.debug((org.apache.logging.log4j.Marker) marker, s, objects); + } + + public void debug(Marker marker, String s, Throwable throwable) { + super.debug((org.apache.logging.log4j.Marker) marker, s, throwable); + } + + public void info(String s, Object o) { + super.info(s, o); + } + + public void info(String s, Object o, Object o1) { + super.info(s, o, o1); + } + + public boolean isInfoEnabled(Marker marker) { + return super.isInfoEnabled((org.apache.logging.log4j.Marker) marker); + } + + public void info(Marker marker, String s) { + super.info((org.apache.logging.log4j.Marker) marker, s); + } + + public void info(Marker marker, String s, Object o) { + super.info((org.apache.logging.log4j.Marker) marker, s, o); + } + + public void info(Marker marker, String s, Object o, Object o1) { + super.info((org.apache.logging.log4j.Marker) marker, s, o, o1); + } + + public void info(Marker marker, String s, Object[] objects) { + super.info((org.apache.logging.log4j.Marker) marker, s, objects); + } + + public void info(Marker marker, String s, Throwable throwable) { + super.info((org.apache.logging.log4j.Marker) marker, s, throwable); + } + + public void warn(String s, Object o) { + super.warn(s, o); + } + + public void warn(String s, Object o, Object o1) { + super.warn(s, o, o1); + } + + public boolean isWarnEnabled(Marker marker) { + return super.isWarnEnabled((org.apache.logging.log4j.Marker) marker); + } + + public void warn(Marker marker, String s) { + super.warn((org.apache.logging.log4j.Marker) marker, s); + } + + public void warn(Marker marker, String s, Object o) { + super.warn((org.apache.logging.log4j.Marker) marker, s, o); + } + + public void warn(Marker marker, String s, Object o, Object o1) { + super.warn((org.apache.logging.log4j.Marker) marker, s, o, o1); + } + + public void warn(Marker marker, String s, Object[] objects) { + super.warn((org.apache.logging.log4j.Marker) marker, s, objects); + } + + public void warn(Marker marker, String s, Throwable throwable) { + super.warn((org.apache.logging.log4j.Marker) marker, s, throwable); + } + + public void error(String s, Object o) { + super.error(s, o); + } + + public void error(String s, Object o, Object o1) { + super.error(s, o, o1); + } + + public boolean isErrorEnabled(Marker marker) { + return super.isErrorEnabled((org.apache.logging.log4j.Marker) marker); + } + + public void error(Marker marker, String s) { + super.error((org.apache.logging.log4j.Marker) marker, s); + } + + public void error(Marker marker, String s, Object o) { + super.error((org.apache.logging.log4j.Marker) marker, s, o); + } + + public void error(Marker marker, String s, Object o, Object o1) { + super.error((org.apache.logging.log4j.Marker) marker, s, o, o1); + } + + public void error(Marker marker, String s, Object[] objects) { + super.error((org.apache.logging.log4j.Marker) marker, s, objects); + } + + public void error(Marker marker, String s, Throwable throwable) { + super.error((org.apache.logging.log4j.Marker) marker, s, throwable); + } + + @Override + protected String getFQCN() { + return FQCN; + } + + private Level getLevel(int i) { + + switch (i) { + case TRACE_INT : + return Level.TRACE; + case DEBUG_INT : + return Level.DEBUG; + case INFO_INT : + return Level.INFO; + case WARN_INT : + return Level.WARN; + case ERROR_INT : + return Level.ERROR; + } + return Level.ERROR; + } +} Added: logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/slf4j-impl/src/main/java/org/slf4j/impl/StaticLoggerBinder.java URL: http://svn.apache.org/viewvc/logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/slf4j-impl/src/main/java/org/slf4j/impl/StaticLoggerBinder.java?rev=1067833&view=auto ============================================================================== --- logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/slf4j-impl/src/main/java/org/slf4j/impl/StaticLoggerBinder.java (added) +++ logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/slf4j-impl/src/main/java/org/slf4j/impl/StaticLoggerBinder.java Mon Feb 7 01:11:40 2011 @@ -0,0 +1,67 @@ +/* + * 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.slf4j.impl; + +import org.slf4j.ILoggerFactory; +import org.slf4j.helpers.Log4JLoggerFactory; +import org.slf4j.spi.LoggerFactoryBinder; + +/** + * + */ +public class StaticLoggerBinder implements LoggerFactoryBinder { + + /** + * The unique instance of this class. + */ + private static final StaticLoggerBinder SINGLETON = new StaticLoggerBinder(); + + /** + * Return the singleton of this class. + * + * @return the StaticLoggerBinder singleton + */ + public static final StaticLoggerBinder getSingleton() { + return SINGLETON; + } + + /** + * Declare the version of the SLF4J API this implementation is compiled + * against. The value of this field is usually modified with each release. + */ + // to avoid constant folding by the compiler, this field must *not* be final + public static String REQUESTED_API_VERSION = "1.6"; // !final + + private static final String loggerFactoryClassStr = Log4JLoggerFactory.class.getName(); + /** + * The ILoggerFactory instance returned by the {@link #getLoggerFactory} + * method should always be the same object + */ + private final ILoggerFactory loggerFactory; + + private StaticLoggerBinder() { + loggerFactory = new Log4JLoggerFactory(); + } + + public ILoggerFactory getLoggerFactory() { + return loggerFactory; + } + + public String getLoggerFactoryClassStr() { + return loggerFactoryClassStr; + } +} Added: logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/slf4j-impl/src/main/java/org/slf4j/impl/StaticMDCBinder.java URL: http://svn.apache.org/viewvc/logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/slf4j-impl/src/main/java/org/slf4j/impl/StaticMDCBinder.java?rev=1067833&view=auto ============================================================================== --- logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/slf4j-impl/src/main/java/org/slf4j/impl/StaticMDCBinder.java (added) +++ logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/slf4j-impl/src/main/java/org/slf4j/impl/StaticMDCBinder.java Mon Feb 7 01:11:40 2011 @@ -0,0 +1,45 @@ +/* + * 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.slf4j.impl; + +import org.slf4j.helpers.Log4JMDCAdapter; +import org.slf4j.spi.MDCAdapter; + +/** + * + */ +public class StaticMDCBinder { + + /** + * The unique instance of this class. + */ + public static final StaticMDCBinder SINGLETON = new StaticMDCBinder(); + + private StaticMDCBinder() { + } + + /** + * Currently this method always returns an instance of {@link StaticMDCBinder}. + */ + public MDCAdapter getMDCA() { + return new Log4JMDCAdapter(); + } + + public String getMDCAdapterClassStr() { + return Log4JMDCAdapter.class.getName(); + } +} Added: logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/slf4j-impl/src/main/java/org/slf4j/impl/StaticMarkerBinder.java URL: http://svn.apache.org/viewvc/logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/slf4j-impl/src/main/java/org/slf4j/impl/StaticMarkerBinder.java?rev=1067833&view=auto ============================================================================== --- logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/slf4j-impl/src/main/java/org/slf4j/impl/StaticMarkerBinder.java (added) +++ logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/slf4j-impl/src/main/java/org/slf4j/impl/StaticMarkerBinder.java Mon Feb 7 01:11:40 2011 @@ -0,0 +1,45 @@ +/* + * 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.slf4j.impl; + +import org.slf4j.IMarkerFactory; +import org.slf4j.helpers.Log4JMarkerFactory; +import org.slf4j.spi.MarkerFactoryBinder; + +/** + * + */ +public class StaticMarkerBinder implements MarkerFactoryBinder +{ + + /** + * The unique instance of this class. + */ + public static final StaticMarkerBinder SINGLETON = new StaticMarkerBinder(); + + final IMarkerFactory markerFactory = new Log4JMarkerFactory(); + + public IMarkerFactory getMarkerFactory() + { + return markerFactory; + } + + public String getMarkerFactoryClassStr() + { + return Log4JMarkerFactory.class.getName(); + } +} Added: logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/slf4j-impl/src/test/java/org/apache/logging/slf4j/LoggerTest.java URL: http://svn.apache.org/viewvc/logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/slf4j-impl/src/test/java/org/apache/logging/slf4j/LoggerTest.java?rev=1067833&view=auto ============================================================================== --- logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/slf4j-impl/src/test/java/org/apache/logging/slf4j/LoggerTest.java (added) +++ logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/slf4j-impl/src/test/java/org/apache/logging/slf4j/LoggerTest.java Mon Feb 7 01:11:40 2011 @@ -0,0 +1,124 @@ +/* + * 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.logging.slf4j; + +import org.apache.logging.log4j.core.LoggerContext; +import org.apache.logging.log4j.core.config.Configuration; +import org.apache.logging.log4j.core.config.XMLConfigurationFactory; +import org.apache.logging.log4j.internal.StatusLogger; +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.slf4j.MDC; +import org.slf4j.ext.EventData; +import org.slf4j.ext.EventLogger; +import org.slf4j.ext.XLogger; +import org.slf4j.ext.XLoggerFactory; +import org.slf4j.helpers.Log4JLoggerFactory; + +import java.util.Locale; + + +/** + * + */ +public class LoggerTest { + + private static final String CONFIG = "log4j-test1.xml"; + + @BeforeClass + public static void setupClass() { + System.setProperty(XMLConfigurationFactory.CONFIGURATION_FILE_PROPERTY, CONFIG); + LoggerContext ctx = Log4JLoggerFactory.getContext(); + Configuration config = ctx.getConfiguration(); + } + + @AfterClass + public static void cleanupClass() { + System.clearProperty(XMLConfigurationFactory.CONFIGURATION_FILE_PROPERTY); + LoggerContext ctx = Log4JLoggerFactory.getContext(); + ctx.reconfigure(); + StatusLogger.getLogger().reset(); + } + + Logger logger = LoggerFactory.getLogger("LoggerTest"); + XLogger xlogger = XLoggerFactory.getXLogger("LoggerTest"); + + @Test + public void basicFlow() { + xlogger.entry(); + xlogger.exit(); + } + + @Test + public void simpleFlow() { + xlogger.entry(CONFIG); + xlogger.exit(0); + } + + @Test + public void throwing() { + xlogger.throwing(new IllegalArgumentException("Test Exception")); + } + + @Test + public void catching() { + try { + throw new NullPointerException(); + } catch (Exception e) { + xlogger.catching(e); + } + } + + @Test + public void debug() { + logger.debug("Debug message"); + } + + + @Test + public void debugWithParms() { + logger.debug("Hello, {}", "World"); + } + + @Test + public void mdc() { + + MDC.put("TestYear", "2010"); + logger.debug("Debug message"); + MDC.clear(); + logger.debug("Debug message"); + } + + @Test + public void testEventLogger() { + MDC.put("loginId", "JohnDoe"); + MDC.put("ipAddress", "192.168.0.120"); + MDC.put("locale", Locale.US.getDisplayName()); + EventData data = new EventData(); + data.setEventType("Transfer"); + data.setEventId("Audit@18060"); + data.setMessage("Transfer Complete"); + data.put("ToAccount", "123456"); + data.put("FromAccount", "123457"); + data.put("Amount", "200.00"); + EventLogger.logEvent(data); + MDC.clear(); + } +} Added: logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/slf4j-impl/src/test/resources/log4j-test1.xml URL: http://svn.apache.org/viewvc/logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/slf4j-impl/src/test/resources/log4j-test1.xml?rev=1067833&view=auto ============================================================================== --- logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/slf4j-impl/src/test/resources/log4j-test1.xml (added) +++ logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/slf4j-impl/src/test/resources/log4j-test1.xml Mon Feb 7 01:11:40 2011 @@ -0,0 +1,43 @@ +<?xml version="1.0" encoding="UTF-8"?> +<configuration packages="" status="debug" name="LoggerTest"> + <properties> + <property name="filename">target/test.log</property> + </properties> + <filters> + <Threshold level="trace"/> + </filters> + + <appenders> + <Console name="EventLogger"> + <PatternLayout pattern="%m%n"/> + </Console> + <Console name="STDOUT"> + <PatternLayout pattern="%m MDC%X%n"/> + </Console> + <File name="File" fileName="${filename}"> + <PatternLayout> + <pattern>%d %p %C{1.} [%t] %m%n</pattern> + </PatternLayout> + </File> + <List name="List"> + <filters> + <Threshold level="error"/> + </filters> + </List> + </appenders> + + <loggers> + <logger name="EventLogger" level="info" additivity="false"> + <appender-ref ref="EventLogger"/> + </logger>> + + <logger name="org.apache.logging.log4j.test2" level="debug" additivity="false"> + <appender-ref ref="File"/> + </logger>> + + <root level="trace"> + <appender-ref ref="STDOUT"/> + </root> + </loggers> + +</configuration> \ No newline at end of file --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
