| /* |
| * 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.log4j.jpa.appender; |
| |
| import java.util.Date; |
| import java.util.Map; |
| |
| import javax.persistence.Basic; |
| import javax.persistence.Column; |
| import javax.persistence.Convert; |
| import javax.persistence.Entity; |
| import javax.persistence.GeneratedValue; |
| import javax.persistence.GenerationType; |
| import javax.persistence.Id; |
| import javax.persistence.Table; |
| import javax.persistence.Temporal; |
| import javax.persistence.TemporalType; |
| import javax.persistence.Transient; |
| |
| import org.apache.logging.log4j.Level; |
| import org.apache.logging.log4j.Marker; |
| import org.apache.logging.log4j.ThreadContext; |
| import org.apache.logging.log4j.core.time.Instant; |
| import org.apache.logging.log4j.jpa.appender.AbstractLogEventWrapperEntity; |
| import org.apache.logging.log4j.jpa.converter.InstantAttributeConverter; |
| import org.apache.logging.log4j.jpa.converter.LevelAttributeConverter; |
| import org.apache.logging.log4j.jpa.converter.MessageAttributeConverter; |
| import org.apache.logging.log4j.jpa.converter.ThrowableAttributeConverter; |
| import org.apache.logging.log4j.util.ReadOnlyStringMap; |
| import org.apache.logging.log4j.core.LogEvent; |
| import org.apache.logging.log4j.core.impl.ThrowableProxy; |
| import org.apache.logging.log4j.message.Message; |
| |
| @Entity |
| @Table(name = "jpaBaseLogEntry") |
| public class TestBaseEntity extends AbstractLogEventWrapperEntity { |
| private static final long serialVersionUID = 2L; |
| |
| private long id = 0L; |
| |
| public TestBaseEntity() { |
| super(); |
| } |
| |
| public TestBaseEntity(final LogEvent wrappedEvent) { |
| super(wrappedEvent); |
| } |
| |
| @Id |
| @GeneratedValue(strategy = GenerationType.IDENTITY) |
| @Column(name = "id") |
| public long getId() { |
| return this.id; |
| } |
| |
| public void setId(final long id) { |
| this.id = id; |
| } |
| |
| @Temporal(TemporalType.TIMESTAMP) |
| @Column(name = "eventDate") |
| public Date getEventDate() { |
| return new Date(this.getTimeMillis()); |
| } |
| |
| public void setEventDate(final Date date) { |
| // this entity is write-only |
| } |
| |
| @Override |
| @Convert(converter = LevelAttributeConverter.class) |
| @Column(name = "level") |
| public Level getLevel() { |
| return this.getWrappedEvent().getLevel(); |
| } |
| |
| @Override |
| @Basic |
| @Column(name = "logger") |
| public String getLoggerName() { |
| return this.getWrappedEvent().getLoggerName(); |
| } |
| |
| @Override |
| @Transient |
| public StackTraceElement getSource() { |
| return this.getWrappedEvent().getSource(); |
| } |
| |
| @Override |
| @Convert(converter = MessageAttributeConverter.class) |
| @Column(name = "message") |
| public Message getMessage() { |
| return this.getWrappedEvent().getMessage(); |
| } |
| |
| @Override |
| @Transient |
| public Marker getMarker() { |
| return this.getWrappedEvent().getMarker(); |
| } |
| |
| @Override |
| @Transient |
| public long getThreadId() { |
| return this.getWrappedEvent().getThreadId(); |
| } |
| |
| @Override |
| @Transient |
| public String getThreadName() { |
| return this.getWrappedEvent().getThreadName(); |
| } |
| |
| @Override |
| @Transient |
| public int getThreadPriority() { |
| return this.getWrappedEvent().getThreadPriority(); |
| } |
| |
| @Override |
| @Transient |
| public long getTimeMillis() { |
| return this.getWrappedEvent().getTimeMillis(); |
| } |
| |
| @Override |
| @Convert(converter = InstantAttributeConverter.class) |
| @Column(name = "instant") |
| public Instant getInstant() { |
| return this.getWrappedEvent().getInstant(); |
| } |
| |
| @Override |
| @Transient |
| public long getNanoTime() { |
| return this.getWrappedEvent().getNanoTime(); |
| } |
| |
| @Override |
| @Convert(converter = ThrowableAttributeConverter.class) |
| @Column(name = "exception") |
| public Throwable getThrown() { |
| return this.getWrappedEvent().getThrown(); |
| } |
| |
| @Override |
| @Transient |
| public ThrowableProxy getThrownProxy() { |
| return this.getWrappedEvent().getThrownProxy(); |
| } |
| |
| @Override |
| @Transient |
| public ReadOnlyStringMap getContextData() { |
| return this.getWrappedEvent().getContextData(); |
| } |
| |
| @Override |
| @Transient |
| public ThreadContext.ContextStack getContextStack() { |
| return this.getWrappedEvent().getContextStack(); |
| } |
| |
| @Override |
| @Transient |
| public String getLoggerFqcn() { |
| return this.getWrappedEvent().getLoggerFqcn(); |
| } |
| } |