diff --git a/plugins/lombok/intellij.lombok.iml b/plugins/lombok/intellij.lombok.iml
index 7250f3a5c9c9..72445413b5cb 100644
--- a/plugins/lombok/intellij.lombok.iml
+++ b/plugins/lombok/intellij.lombok.iml
@@ -29,5 +29,6 @@
+
\ No newline at end of file
diff --git a/plugins/lombok/src/test/java/com/intellij/java/lomboktest/LombokLoggerCompletionTest.kt b/plugins/lombok/src/test/java/com/intellij/java/lomboktest/LombokLoggerCompletionTest.kt
new file mode 100644
index 000000000000..1d45bc69263f
--- /dev/null
+++ b/plugins/lombok/src/test/java/com/intellij/java/lomboktest/LombokLoggerCompletionTest.kt
@@ -0,0 +1,50 @@
+package com.intellij.java.lomboktest
+
+import com.intellij.codeInsight.completion.JvmLoggerLookupElement
+import com.intellij.codeInsight.completion.LightFixtureCompletionTestCase
+import com.intellij.java.codeInsight.JvmLoggerTestSetupUtil
+import com.intellij.testFramework.LightProjectDescriptor
+import de.plushnikov.intellij.plugin.LombokTestUtil
+import de.plushnikov.intellij.plugin.logging.LombokLoggingUtils
+import junit.framework.TestCase
+
+class LombokLoggerCompletionTest : LightFixtureCompletionTestCase() {
+ fun testSlf4j() {
+ JvmLoggerTestSetupUtil.setupSlf4j(myFixture)
+
+ doTest(LombokLoggingUtils.SLF4J_ANNOTATION, "long", "log", "log", "clone")
+ }
+
+ fun testLog4j2() {
+ JvmLoggerTestSetupUtil.setupLog4j2(myFixture)
+
+ doTest(LombokLoggingUtils.LOG4J2_ANNOTATION, "long", "log", "log", "clone")
+ }
+
+ fun testLog4j() {
+ JvmLoggerTestSetupUtil.setupLog4j(myFixture)
+
+ doTest(LombokLoggingUtils.LOG4J_ANNOTATION, "long", "log", "log", "clone")
+ }
+
+ fun testApacheCommons() {
+ JvmLoggerTestSetupUtil.setupApacheCommons(myFixture)
+
+ doTest(LombokLoggingUtils.COMMONS_ANNOTATION, "long", "log", "log", "clone")
+ }
+
+ override fun getBasePath(): String = "community/plugins/lombok/testData/completion/logger"
+
+ override fun getProjectDescriptor(): LightProjectDescriptor = LombokTestUtil.LOMBOK_OLD_DESCRIPTOR
+
+ private fun doTest(typeName: String, vararg names: String) {
+ val name = getTestName(false)
+ configureByFile("before$name.java")
+ assertStringItems(*names)
+
+ val item = lookup.items.find { it is JvmLoggerLookupElement && it.typeName == typeName }
+ TestCase.assertNotNull(item)
+ selectItem(item)
+ checkResultByFile("after$name.java")
+ }
+}
\ No newline at end of file
diff --git a/plugins/lombok/testData/completion/logger/afterApacheCommons.java b/plugins/lombok/testData/completion/logger/afterApacheCommons.java
new file mode 100644
index 000000000000..a60aa00fc4ba
--- /dev/null
+++ b/plugins/lombok/testData/completion/logger/afterApacheCommons.java
@@ -0,0 +1,8 @@
+import lombok.extern.apachecommons.CommonsLog;
+
+@CommonsLog
+public class A {
+ void foo() {
+ log
+ }
+}
\ No newline at end of file
diff --git a/plugins/lombok/testData/completion/logger/afterLog4j.java b/plugins/lombok/testData/completion/logger/afterLog4j.java
new file mode 100644
index 000000000000..708b19d907a9
--- /dev/null
+++ b/plugins/lombok/testData/completion/logger/afterLog4j.java
@@ -0,0 +1,8 @@
+import lombok.extern.log4j.Log4j;
+
+@Log4j
+public class A {
+ void foo() {
+ log
+ }
+}
\ No newline at end of file
diff --git a/plugins/lombok/testData/completion/logger/afterLog4j2.java b/plugins/lombok/testData/completion/logger/afterLog4j2.java
new file mode 100644
index 000000000000..5380f9b79155
--- /dev/null
+++ b/plugins/lombok/testData/completion/logger/afterLog4j2.java
@@ -0,0 +1,8 @@
+import lombok.extern.log4j.Log4j2;
+
+@Log4j2
+public class A {
+ void foo() {
+ log
+ }
+}
\ No newline at end of file
diff --git a/plugins/lombok/testData/completion/logger/afterSlf4j.java b/plugins/lombok/testData/completion/logger/afterSlf4j.java
new file mode 100644
index 000000000000..55588ac0c313
--- /dev/null
+++ b/plugins/lombok/testData/completion/logger/afterSlf4j.java
@@ -0,0 +1,8 @@
+import lombok.extern.slf4j.Slf4j;
+
+@Slf4j
+public class A {
+ void foo() {
+ log
+ }
+}
\ No newline at end of file
diff --git a/plugins/lombok/testData/completion/logger/beforeApacheCommons.java b/plugins/lombok/testData/completion/logger/beforeApacheCommons.java
new file mode 100644
index 000000000000..7cbfbce5e498
--- /dev/null
+++ b/plugins/lombok/testData/completion/logger/beforeApacheCommons.java
@@ -0,0 +1,5 @@
+public class A {
+ void foo() {
+ lo
+ }
+}
\ No newline at end of file
diff --git a/plugins/lombok/testData/completion/logger/beforeLog4j.java b/plugins/lombok/testData/completion/logger/beforeLog4j.java
new file mode 100644
index 000000000000..7cbfbce5e498
--- /dev/null
+++ b/plugins/lombok/testData/completion/logger/beforeLog4j.java
@@ -0,0 +1,5 @@
+public class A {
+ void foo() {
+ lo
+ }
+}
\ No newline at end of file
diff --git a/plugins/lombok/testData/completion/logger/beforeLog4j2.java b/plugins/lombok/testData/completion/logger/beforeLog4j2.java
new file mode 100644
index 000000000000..7cbfbce5e498
--- /dev/null
+++ b/plugins/lombok/testData/completion/logger/beforeLog4j2.java
@@ -0,0 +1,5 @@
+public class A {
+ void foo() {
+ lo
+ }
+}
\ No newline at end of file
diff --git a/plugins/lombok/testData/completion/logger/beforeSlf4j.java b/plugins/lombok/testData/completion/logger/beforeSlf4j.java
new file mode 100644
index 000000000000..7cbfbce5e498
--- /dev/null
+++ b/plugins/lombok/testData/completion/logger/beforeSlf4j.java
@@ -0,0 +1,5 @@
+public class A {
+ void foo() {
+ lo
+ }
+}
\ No newline at end of file