diff --git a/core/src/main/java/hudson/logging/LogRecorder.java b/core/src/main/java/hudson/logging/LogRecorder.java index d3660efaeaf44d3e0a9f0210fad73267cf2e1b49..72affc2af6209816a393b4334072e8c375a208d0 100644 --- a/core/src/main/java/hudson/logging/LogRecorder.java +++ b/core/src/main/java/hudson/logging/LogRecorder.java @@ -29,12 +29,9 @@ import hudson.Extension; import hudson.FilePath; import hudson.Util; import hudson.XmlFile; -import hudson.model.AbstractModelObject; -import hudson.model.Computer; +import hudson.model.*; import hudson.util.HttpResponses; import jenkins.model.Jenkins; -import hudson.model.Saveable; -import hudson.model.TaskListener; import hudson.model.listeners.SaveableListener; import hudson.remoting.Callable; import hudson.remoting.Channel; @@ -44,25 +41,16 @@ import hudson.util.CopyOnWriteList; import hudson.util.RingBufferLogHandler; import hudson.util.XStream2; import net.sf.json.JSONObject; -import org.kohsuke.stapler.DataBoundConstructor; -import org.kohsuke.stapler.HttpResponse; -import org.kohsuke.stapler.StaplerRequest; -import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.*; import org.kohsuke.stapler.interceptor.RequirePOST; import javax.servlet.ServletException; import java.io.File; import java.io.IOException; import java.text.Collator; -import java.util.ArrayList; -import java.util.List; -import java.util.Arrays; -import java.util.Comparator; -import java.util.HashSet; -import java.util.Map; -import java.util.Set; -import java.util.TreeMap; +import java.util.*; import java.util.logging.Level; +import java.util.logging.LogManager; import java.util.logging.LogRecord; import java.util.logging.Logger; import org.kohsuke.accmod.Restricted; @@ -100,6 +88,19 @@ public class LogRecorder extends AbstractModelObject implements Saveable { return ts; } + @Restricted(NoExternalUse.class) + public AutoCompletionCandidates doAutoCompleteLoggerName(@QueryParameter String value) { + AutoCompletionCandidates candidates = new AutoCompletionCandidates(); + Enumeration loggerNames = LogManager.getLogManager().getLoggerNames(); + while (loggerNames.hasMoreElements()) { + String loggerName = loggerNames.nextElement(); + if (loggerName.toLowerCase(Locale.ENGLISH).contains(value.toLowerCase(Locale.ENGLISH))) { + candidates.add(loggerName); + } + } + return candidates; + } + @Restricted(NoExternalUse.class) transient /*almost final*/ RingBufferLogHandler handler = new RingBufferLogHandler() { @Override diff --git a/core/src/main/resources/hudson/logging/LogRecorder/configure.jelly b/core/src/main/resources/hudson/logging/LogRecorder/configure.jelly index a1f9b5b11ccc8229d0dcfd5a35c7cce4a886d37b..1948fd5ea4dbbe3d7e51b04be135dbf65636032e 100644 --- a/core/src/main/resources/hudson/logging/LogRecorder/configure.jelly +++ b/core/src/main/resources/hudson/logging/LogRecorder/configure.jelly @@ -47,7 +47,7 @@ THE SOFTWARE. ${%Logger} - + ${%Log level}