Skip to content
This repository was archived by the owner on Aug 6, 2025. It is now read-only.

Commit 090414c

Browse files
committed
fix filters
1 parent 8c66648 commit 090414c

File tree

9 files changed

+34
-34
lines changed

9 files changed

+34
-34
lines changed

docs/_includes/sections/filters.html

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,12 @@ <h2>Marker</h2>
1818
appenders: [{
1919
appender: RollingFile,
2020
filters: [{
21-
filter: MarkerFilter,
21+
filter: 'Marker',
2222
marker: 'MyMarker',
23-
onMatch: LogFilterAction.ALLOW,
24-
onMismatch: LogFilterAction.DENY
23+
config: {
24+
onMatch: LogFilterAction.ALLOW,
25+
onMismatch: LogFilterAction.DENY
26+
}
2527
}]
2628
}]
2729
});
@@ -45,4 +47,4 @@ <h2>Custom</h2>
4547
}
4648

4749
}
48-
{% endhighlight %}
50+
{% endhighlight %}

package-lock.json

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/appender/appender.wrapper.ts

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,16 @@
11
import IAppenderConfiguration from '../config/appender.config';
22
import { Newable } from '../def';
33
import { getFilter } from '../filter';
4-
import { ILogFilterConfiguration, LogFilter } from '../filter/log.filter';
4+
import { LogFilter } from '../filter/log.filter';
55
import { LogFilterAction } from '../filter/log.filter.action';
66
import { ILogEvent } from '../log.event';
77
import { LogAppender } from './log.appender';
88

9-
interface IFilterRegister<T extends ILogFilterConfiguration> {
9+
interface IFilterRegister<T> {
1010
filter: LogFilter<T>;
1111
config: T;
12+
onMatch: LogFilterAction;
13+
onMismatch: LogFilterAction;
1214
}
1315

1416
export class AppenderWrapper {
@@ -26,7 +28,9 @@ export class AppenderWrapper {
2628

2729
this._filters = _config.filters.map((filter) => ({
2830
filter: new (getFilter(filter.filter as string) as any)(filter.config),
29-
config: filter.config
31+
config: filter.config,
32+
onMatch: filter.onMatch,
33+
onMismatch: filter.onMismatch
3034
}));
3135

3236
} else {
@@ -40,13 +44,13 @@ export class AppenderWrapper {
4044
}
4145

4246
public append(event: ILogEvent) {
43-
this._appender.append(event);
47+
if (this.isMatch(event)) {
48+
this._appender.append(event);
49+
}
4450
}
4551

4652
public isMatch(event: ILogEvent): boolean {
47-
4853
return this._isPassThrough || this._isMatch(event);
49-
5054
}
5155

5256
private _isMatch(event: ILogEvent): boolean {
@@ -57,15 +61,15 @@ export class AppenderWrapper {
5761

5862
item = this._filters[i];
5963
if (!item.filter.isMatch(event)) {
60-
if (item.config.onMismatch === LogFilterAction.DENY) {
64+
if (item.onMismatch === LogFilterAction.DENY) {
6165
return false;
62-
} else if (item.config.onMismatch === LogFilterAction.ALLOW) {
66+
} else if (item.onMismatch === LogFilterAction.ALLOW) {
6367
return true;
6468
}
6569
} else {
66-
if (item.config.onMatch === LogFilterAction.DENY) {
70+
if (item.onMatch === LogFilterAction.DENY) {
6771
return false;
68-
} else if (item.config.onMatch === LogFilterAction.ALLOW) {
72+
} else if (item.onMatch === LogFilterAction.ALLOW) {
6973
return true;
7074
}
7175
}

src/appender/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ export const getLoggerAppenderInstances = (appenders?: string[]): AppenderWrappe
104104

105105
if (_registeredLoggerAppenders.has(value)) {
106106
const appenderConfig = _registeredLoggerAppenders.get(value);
107-
return new AppenderWrapper(appenderConfig.appender as Newable<LogAppender<any>>, appenderConfig.config);
107+
return new AppenderWrapper(appenderConfig.appender as Newable<LogAppender<any>>, appenderConfig);
108108
}
109109

110110
throw new Error(`Invalid appender reference '${value}'`);
@@ -115,7 +115,7 @@ export const getLoggerAppenderInstances = (appenders?: string[]): AppenderWrappe
115115

116116
const result: AppenderWrapper[] = [];
117117
_registeredLoggerAppenders.forEach((appenderConfig) =>
118-
result.push(new AppenderWrapper(appenderConfig.appender as Newable<LogAppender<any>>, appenderConfig.config))
118+
result.push(new AppenderWrapper(appenderConfig.appender as Newable<LogAppender<any>>, appenderConfig))
119119
);
120120

121121
return result;

src/config/filter.configuration.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
1-
import { ILogFilterConfiguration, LogFilter } from '..';
1+
import { LogFilter, LogFilterAction } from '..';
22
import { Newable } from '../def';
33

4-
export interface IFilterConfiguration<C extends ILogFilterConfiguration, T extends LogFilter<C> = LogFilter<C>> {
4+
export interface IFilterConfiguration<C, T extends LogFilter<C> = LogFilter<C>> {
55

66
filter: Newable<T> | string;
77
config: C;
8+
onMatch: LogFilterAction;
9+
onMismatch: LogFilterAction;
810

911
}

src/filter/index.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { ILogFilterConfiguration, LogFilter } from '..';
1+
import { LogFilter } from '..';
22
import { Newable } from '../def';
33

44
const _filterMethods: Set<FunctionProps<LogFilter<any>>> = new Set<FunctionProps<LogFilter<any>>>();
@@ -15,7 +15,7 @@ const _filters: Map<string, Newable<LogFilter<any>>> = new Map<string, Newable<L
1515
* @params {APPENDER} appender
1616
* @throws {Error} if the appender is invalid
1717
*/
18-
const _validateFilter = <C extends ILogFilterConfiguration, T extends LogFilter<C>>(filter: Newable<T>) => {
18+
const _validateFilter = <C, T extends LogFilter<C>>(filter: Newable<T>) => {
1919

2020
// if we are running ES6, we can make sure it extends LogAppender
2121
// otherwise, it must be a function
@@ -35,7 +35,7 @@ const _validateFilter = <C extends ILogFilterConfiguration, T extends LogFilter<
3535

3636
};
3737

38-
export const addFilter = <C extends ILogFilterConfiguration, T extends LogFilter<C>>(filter: Newable<T>, name: string): Newable<T> => {
38+
export const addFilter = <C, T extends LogFilter<C>>(filter: Newable<T>, name: string): Newable<T> => {
3939

4040
_validateFilter(filter);
4141

src/filter/log.filter.ts

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,6 @@
11
import { ILogEvent } from '../log.event';
2-
import { LogFilterAction } from './log.filter.action';
32

4-
export interface ILogFilterConfiguration {
5-
6-
onMatch: LogFilterAction;
7-
onMismatch: LogFilterAction;
8-
9-
}
10-
11-
export abstract class LogFilter<C extends ILogFilterConfiguration> {
3+
export abstract class LogFilter<C> {
124

135
constructor(protected readonly configuration: C) { }
146

src/filter/marker.filter.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import { Filter } from '../decorator/filter';
22
import { ILogEvent } from '../log.event';
33
import { Marker } from '../marker';
4-
import { ILogFilterConfiguration, LogFilter } from './log.filter';
4+
import { LogFilter } from './log.filter';
55

6-
export interface IMarkerFilterConfiguration extends ILogFilterConfiguration {
6+
export interface IMarkerFilterConfiguration {
77
marker: string;
88
}
99

src/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,5 +15,5 @@ export { Appender } from './decorator/appender';
1515
export { Filter } from './decorator/filter';
1616

1717
export { LogFilterAction } from './filter/log.filter.action';
18-
export { ILogFilterConfiguration, LogFilter } from './filter/log.filter';
18+
export { LogFilter } from './filter/log.filter';
1919
export { IMarkerFilterConfiguration, MarkerFilter } from './filter/marker.filter';

0 commit comments

Comments
 (0)