[
https://issues.apache.org/jira/browse/LOG4J2-1741?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15761188#comment-15761188
]
Mikael Ståldal commented on LOG4J2-1741:
----------------------------------------
OK:
{code}
class KafkaLog4jAppender(name: String, filter: Filter, layout: Layout[_ <:
java.io.Serializable])
// ...
object KafkaLog4jAppender {
@PluginBuilderFactory
def newBuilder() = new Builder()
class Builder extends AbstractAppender.Builder with
org.apache.logging.log4j.core.util.Builder[KafkaLog4jAppender] {
def build: KafkaLog4jAppender = new KafkaLog4jAppender(getName, getFilter,
getLayout)
}
}
{code}
> scala: add support for creating custom plugins
> ----------------------------------------------
>
> Key: LOG4J2-1741
> URL: https://issues.apache.org/jira/browse/LOG4J2-1741
> Project: Log4j 2
> Issue Type: Improvement
> Components: Plugins
> Reporter: PJ Fanning
> Assignee: Mikael Ståldal
> Labels: scala
> Attachments: log4j2-sample.zip
>
>
> I tried to add a custom appender using Scala but the pattern of having a
> class with an Plugin annotation and a static method on that class with a
> PluginFactory or PluginBuilderFactory annotation doesn't seem to work in
> Scala.
> In Scala, you can create a companion object to a class where you can
> implement the equivalent of static methods but these are not the same class
> under the hood. The Scala compiler builds 2 or more classes, the companion
> object gets a class name with a $ appended to it. I think this is affecting
> the lookup for the method with the Factory annotation.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]