Feature/kafkajs update kafka options to include log creator (#35831)

* Changefs in `kafkajs` to update to the latest version

Include `logCreator` in `KafkaOptions`

* Include example in the tests

* Fix linter problems

* Updated version of `kafkajs` to 1.8
This commit is contained in:
Jose Camara
2019-05-30 19:53:07 +02:00
committed by Sheetal Nandi
parent 4685bbd271
commit f08baa1d0f
2 changed files with 35 additions and 3 deletions

View File

@@ -1,4 +1,4 @@
// Type definitions for kafkajs 1.4
// Type definitions for kafkajs 1.8
// Project: https://github.com/tulios/kafkajs, https://kafka.js.org
// Definitions by: Michal Kaminski <https://github.com/michal-b-kaminski>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
@@ -71,6 +71,31 @@ export enum ResourceTypes {
DELEGATION_TOKEN = 6
}
export interface LoggerMessage {
/** @var namespace Context from which the logger was called. */
readonly namespace: string;
/** @var level Logger level. */
readonly level: logLevel;
/** @var label Logger level label. */
readonly label: string;
/** @var log Content of the logger entry. */
readonly log: LoggerMessageContent;
}
export interface LoggerMessageContent {
/** @var timestamp Message timestamp. */
readonly timestamp: Date;
/** @var message Message sent to the logger. */
readonly message: string;
// Other possible fields in the content, that depend on the context.
[key: string]: any;
}
export interface KafkaOptions {
clientId?: string;
brokers: string[];
@@ -80,6 +105,7 @@ export interface KafkaOptions {
requestTimeout?: number;
retry?: RetryOptions;
logLevel?: logLevel;
logCreator?: () => (message: LoggerMessage) => void;
}
export interface SASLOptions {

View File

@@ -8,7 +8,8 @@ import {
CompressionTypes,
CompressionCodecs,
ResourceTypes,
PartitionAssigner
PartitionAssigner,
LoggerMessage
} from "kafkajs";
const { MemberMetadata, MemberAssignment } = AssignerProtocol;
@@ -18,6 +19,10 @@ const { roundRobin } = PartitionAssigners;
const host = "localhost";
const topic = "topic-test";
const logger = (loggerMessage: LoggerMessage): void => {
console.log(`[${loggerMessage.namespace}] ${loggerMessage.log.message}`);
};
const kafka = new Kafka({
logLevel: logLevel.INFO,
brokers: [`${host}:9094`, `${host}:9097`, `${host}:9100`],
@@ -31,7 +36,8 @@ const kafka = new Kafka({
mechanism: "plain",
username: "test",
password: "testtest"
}
},
logCreator: () => logger
});
// CONSUMER