Class IfFileName
java.lang.Object
org.apache.logging.log4j.core.appender.rolling.action.IfFileName
- All Implemented Interfaces:
PathCondition
@Plugin(name="IfFileName",
category="Core",
printObject=true)
public final class IfFileName
extends Object
implements PathCondition
PathCondition that accepts files for deletion if their relative path matches either a glob pattern or a regular
expression. If both a regular expression and a glob pattern are specified the glob pattern is used and the regular
expression is ignored.
The regular expression is a pattern as defined by the Pattern
class. A glob is a simplified pattern
expression described in FileSystem.getPathMatcher(String)
.
-
Field Summary
Fields inherited from interface org.apache.logging.log4j.core.appender.rolling.action.PathCondition
EMPTY_ARRAY
-
Method Summary
Modifier and TypeMethodDescriptionboolean
accept
(Path basePath, Path relativePath, BasicFileAttributes attrs) Returnstrue
if the specified candidate path should be deleted,false
otherwise.void
Invoked before a new file tree walk is started.static IfFileName
createNameCondition
(String glob, String regex, PathCondition... nestedConditions) Creates a IfFileName condition that returns true if either the specified glob pattern or the regular expression matches the relative path.Returns the baseDir-relative path pattern of the files to delete.toString()
-
Method Details
-
getSyntaxAndPattern
Returns the baseDir-relative path pattern of the files to delete. The returned string takes the formsyntax:pattern
where syntax is one of "glob" or "regex" and the pattern is either a regular expression or a simplified pattern expression described under "glob" inFileSystem.getPathMatcher(String)
.- Returns:
- relative path of the file(s) to delete (may contain regular expression or wildcarts)
-
getNestedConditions
-
accept
Description copied from interface:PathCondition
Returnstrue
if the specified candidate path should be deleted,false
otherwise.- Specified by:
accept
in interfacePathCondition
- Parameters:
basePath
- the directory from where to start scanning for deletion candidate filesrelativePath
- the candidate for deletion. This path is relative to the baseDir.attrs
- attributes of the candidate path- Returns:
- whether the candidate path should be deleted
-
beforeFileTreeWalk
public void beforeFileTreeWalk()Description copied from interface:PathCondition
Invoked before a new file tree walk is started. Stateful PathConditions can reset their state when this method is called.- Specified by:
beforeFileTreeWalk
in interfacePathCondition
-
createNameCondition
@PluginFactory public static IfFileName createNameCondition(@PluginAttribute("glob") String glob, @PluginAttribute("regex") String regex, @PluginElement("PathConditions") PathCondition... nestedConditions) Creates a IfFileName condition that returns true if either the specified glob pattern or the regular expression matches the relative path. If both a regular expression and a glob pattern are specified the glob pattern is used and the regular expression is ignored.- Parameters:
glob
- the baseDir-relative path pattern of the files to delete (may contain '*' and '?' wildcarts)regex
- the regular expression that matches the baseDir-relative path of the file(s) to deletenestedConditions
- nested conditions to evaluate if this condition accepts a path- Returns:
- A IfFileName condition.
- See Also:
-
toString
-