Package org.logevents.formatters
Class SourceCodeLookup
- java.lang.Object
-
- org.logevents.formatters.SourceCodeLookup
-
public class SourceCodeLookup extends Object
Configure links to source code (for ExceptionFormatters that support it), based on package names. Currently, Log Events understand how to read (some) <scm> settings from.pom
-filesaddPackageMavenLocation(String, String)
and how to set up a link to a simple Github (addPackageGithubLocation(java.lang.String, java.lang.String, java.util.Optional<java.lang.String>)
or Bitbucket (addPackageBitbucket5Location(java.lang.String, java.lang.String, java.util.Optional<java.lang.String>)
) project. Example configuration:observer.*.sourceCode.1.packages=org.logevents # See if META-INF/maven/org.logevents/logevents/pom.xml is available # If so, look for the <scm> tag in the pom-file observer.*.sourceCode.1.maven=org.logevents/logevents observer.*.sourceCode.2.packages=org.slf4j # Link to Github observer.*.sourceCode.2.github=https://github.com/qos-ch/slf4j observer.*.sourceCode.2.tag=v_1.7.25 observer.*.sourceCode.3.packages=com.myproject # Link to Bitbucket: https://bitbucket.example.com/EX/project/src/main/java/{file-path}?at=release#{line} observer.*.sourceCode.3.github=https://bitbucket.example.com/EX/project/ observer.*.sourceCode.3.tag=release
You can customize source code lookup by subclassing:observer.*.sourceCode=com.example.logging.SourceCodeLookup
-
-
Field Summary
Fields Modifier and Type Field Description protected Map<String,Function<StackTraceElement,String>>
sourcePackagePatterns
-
Constructor Summary
Constructors Constructor Description SourceCodeLookup()
SourceCodeLookup(Map<String,String> properties, String prefix)
SourceCodeLookup(Configuration configuration)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addPackageBitbucket5Location(String sourcePackages, String url, Optional<String> tag)
Links to{url}/src/main/java/{filename}?at={tag}#{line}
void
addPackageGithubLocation(String sourcePackages, String project, Optional<String> tag)
Links tohttps://github.com/{project}/blob/{tag}{/module}/src/main/java/{filename}#L{line}
void
addPackageLocation(String sourcePackages, Optional<String> githubLocation, Optional<String> mavenLocation, Optional<String> bitbucketLocation, Optional<String> tag)
void
addPackageMavenLocation(String sourcePackages, InputStream pomResource)
void
addPackageMavenLocation(String sourcePackages, String mavenLocation)
Looks for POM file in/META-INF/maven/{mavenLocation}/pom.xml
and parses<scm><url /><tag /></scm>
to find source code location and tag.void
addPackageUrlPattern(String sourcePackages, Function<StackTraceElement,String> transform)
String
getSourceLink(StackTraceElement stackTraceElement)
-
-
-
Field Detail
-
sourcePackagePatterns
protected final Map<String,Function<StackTraceElement,String>> sourcePackagePatterns
-
-
Constructor Detail
-
SourceCodeLookup
public SourceCodeLookup(Configuration configuration)
-
SourceCodeLookup
public SourceCodeLookup()
-
-
Method Detail
-
getSourceLink
public String getSourceLink(StackTraceElement stackTraceElement)
-
addPackageLocation
public void addPackageLocation(String sourcePackages, Optional<String> githubLocation, Optional<String> mavenLocation, Optional<String> bitbucketLocation, Optional<String> tag)
-
addPackageMavenLocation
public void addPackageMavenLocation(String sourcePackages, String mavenLocation)
Looks for POM file in/META-INF/maven/{mavenLocation}/pom.xml
and parses<scm><url /><tag /></scm>
to find source code location and tag. Currently only supports Github.
-
addPackageMavenLocation
public void addPackageMavenLocation(String sourcePackages, InputStream pomResource) throws SAXException, IOException, ParserConfigurationException
-
addPackageGithubLocation
public void addPackageGithubLocation(String sourcePackages, String project, Optional<String> tag)
Links tohttps://github.com/{project}/blob/{tag}{/module}/src/main/java/{filename}#L{line}
-
addPackageBitbucket5Location
public void addPackageBitbucket5Location(String sourcePackages, String url, Optional<String> tag)
Links to{url}/src/main/java/{filename}?at={tag}#{line}
-
addPackageUrlPattern
public void addPackageUrlPattern(String sourcePackages, Function<StackTraceElement,String> transform)
-
-