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 inFileSystem.getPathMatcher(String)
.
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
accept(Path basePath, Path relativePath, BasicFileAttributes attrs)
Returnstrue
if the specified candidate path should be deleted,false
otherwise.void
beforeFileTreeWalk()
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.List<PathCondition>
getNestedConditions()
String
getSyntaxAndPattern()
Returns the baseDir-relative path pattern of the files to delete.String
toString()
-
-
-
Method Detail
-
getSyntaxAndPattern
public String 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
public List<PathCondition> getNestedConditions()
-
accept
public boolean accept(Path basePath, Path relativePath, BasicFileAttributes attrs)
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:
FileSystem.getPathMatcher(String)
-
-