# Installation
> `npm install --save @types/graylog2`

# Summary
This package contains type definitions for graylog2 (https://github.com/Wizcorp/node-graylog2).

# Details
Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/graylog2.
## [index.d.ts](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/graylog2/index.d.ts)
````ts
/// <reference types="node" />

import { EventEmitter } from "events";

export type GraylogDeflate = "optimal" | "always" | "never";

export type GraylogLogMethod =
    | "log"
    | "emergency"
    | "alert"
    | "critical"
    | "error"
    | "warning"
    | "warn"
    | "notice"
    | "info"
    | "debug";

export interface GraylogConfig {
    /**
     * The name of a host.
     * The default value is "os.hostname()"
     */
    hostname?: string | undefined;

    /**
     * The facility - log's field type in Graylog.
     * The default value is "Node.js"
     */
    facility?: string | undefined;

    /**
     * The strategy for a message compression:
     *  "always"  -  every message will be compressed with zlib.deflate
     *  "never"   -  no compression
     *  "optimal" -  messages bigger than GraylogConfig.bufferSize will be compressed
     *
     *  The default value is "optimal"
     */
    deflate?: GraylogDeflate | undefined;

    /**
     * The max UDP packet size. Should never exceed the MTU of your system.
     * The default value is 1400
     */
    bufferSize?: number | undefined;

    /**
     * The list of graylog servers
     */
    servers: ReadonlyArray<Readonly<{ host: string; port: number }>>;
}

export class graylog extends EventEmitter {
    constructor(config: Readonly<GraylogConfig>);

    log(message: string | Error | Record<string, any>): void;
    log(message: string, fullMessage: string, additionalFields?: Record<string, any>, timestamp?: number): void;
    log(message: string | Error, additionalFields?: Record<string, any>, _?: undefined, timestamp?: number): void;
    log(
        message: string | Error | Record<string, any>,
        _: undefined,
        additionalFields: Record<string, any> | undefined,
        timestamp?: number,
    ): void;

    emergency: graylog["log"];
    alert: graylog["log"];
    critical: graylog["log"];
    error: graylog["log"];
    warning: graylog["log"];
    warn: graylog["log"];
    notice: graylog["log"];
    info: graylog["log"];
    debug: graylog["log"];

    close(callback?: (err: Error | undefined) => void): void;
}

export namespace graylog {
    const graylog: graylog;
}

````

### Additional Details
 * Last updated: Tue, 07 Nov 2023 03:09:37 GMT
 * Dependencies: [@types/node](https://npmjs.com/package/@types/node)

# Credits
These definitions were written by [Andrey Kun](https://github.com/scalder27).
