util-logopenfile.h File Reference
#include "threads.h"
#include "conf.h"
#include "util-buffer.h"
#include "util-hash.h"
#include "output-eve.h"
Include dependency graph for util-logopenfile.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  ThreadLogFileHashEntry
struct  LogThreadedFileCtx_
struct  LogFileTypeCtx_
struct  LogFileCtx_




typedef struct ThreadLogFileHashEntry ThreadLogFileHashEntry
typedef struct LogThreadedFileCtx_ LogThreadedFileCtx
typedef struct LogFileTypeCtx_ LogFileTypeCtx
typedef struct LogFileCtx_ LogFileCtx


enum  LogFileType {


LogFileCtxLogFileNewCtx (void)
 LogFileNewCtx() Get a new LogFileCtx. More...
int LogFileFreeCtx (LogFileCtx *)
 LogFileFreeCtx() Destroy a LogFileCtx (Close the file and free memory) More...
int LogFileWrite (LogFileCtx *file_ctx, MemBuffer *buffer)
LogFileCtxLogFileEnsureExists (ThreadId thread_id, LogFileCtx *lf_ctx)
 LogFileEnsureExists() Ensure a log file context for the thread exists. More...
int SCConfLogOpenGeneric (ConfNode *conf, LogFileCtx *, const char *, int)
 open a generic output "log file", which may be a regular file or a socket More...
int SCConfLogReopen (LogFileCtx *)
 Reopen a regular log file with the side-affect of truncating it. More...
bool SCLogOpenThreadedFile (const char *log_path, const char *append, LogFileCtx *parent_ctx)

Detailed Description

Macro Definition Documentation



Definition at line 163 of file util-logopenfile.h.



Definition at line 166 of file util-logopenfile.h.

Typedef Documentation

◆ LogFileCtx

typedef struct LogFileCtx_ LogFileCtx

Global structure for Output Context

◆ LogFileTypeCtx

◆ LogThreadedFileCtx

◆ ThreadLogFileHashEntry

Enumeration Type Documentation

◆ LogFileType


New style or modular filetypes.


Definition at line 38 of file util-logopenfile.h.

Function Documentation

◆ LogFileEnsureExists()

LogFileCtx* LogFileEnsureExists ( ThreadId  thread_id,
LogFileCtx parent_ctx 

LogFileEnsureExists() Ensure a log file context for the thread exists.

Return values
LogFileCtx* pointer if successful; NULL otherwise

Definition at line 709 of file util-logopenfile.c.

References LogThreadedFileCtx_::mutex, SCMutexLock, LogFileCtx_::threaded, and LogFileCtx_::threads.

Referenced by CreateEveThreadCtx(), and JsonLogThreadInit().

Here is the caller graph for this function:

◆ LogFileFreeCtx()

◆ LogFileNewCtx()

LogFileCtx* LogFileNewCtx ( void  )

LogFileNewCtx() Get a new LogFileCtx.

Return values
LogFileCtx* pointer if successful, NULL if error

Definition at line 659 of file util-logopenfile.c.

References SCCalloc, and LogFileCtx_::Write.

Referenced by AlertFastLogInitCtx(), LogHttpLogInitCtx(), LogTcpDataLogInitCtx(), and OutputJsonInitCtx().

Here is the caller graph for this function:

◆ LogFileWrite()

◆ SCConfLogOpenGeneric()

int SCConfLogOpenGeneric ( ConfNode conf,
LogFileCtx log_ctx,
const char *  default_filename,
int  rotate 

open a generic output "log file", which may be a regular file or a socket

confConfNode structure for the output section in question
log_ctxLog file context allocated by caller
default_filenameDefault name of file to open, if not specified in ConfNode
rotateRegister the file for rotation in HUP.
Return values
0on success
-1on error

Definition at line 452 of file util-logopenfile.c.

References ConfigGetLogDirectory(), ConfNodeLookupChild(), ConfNodeLookupChildValue(), ConfValIsFalse(), DEFAULT_LOG_FILETYPE, DEFAULT_LOG_MODE_APPEND, FatalError, LogFileCtx_::filemode, LogFileCtx_::flags, LogFileCtx_::fp, LogFileCtx_::is_regular, LogFileCtx_::is_sock, JSON_ESCAPE_SLASH, LogFileCtx_::json_flags, LOGFILE_ROTATE_INTERVAL, PathIsAbsolute(), LogFileCtx_::rotate_interval, LogFileCtx_::rotate_time, SCGetSecondsUntil(), SCLogError, SCParseTimeSizeString(), LogFileCtx_::sock_type, StringParseUint32(), and LogFileCtx_::threaded.

Referenced by AlertFastLogInitCtx(), LogHttpLogInitCtx(), and LogTcpDataLogInitCtx().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ SCConfLogReopen()

int SCConfLogReopen ( LogFileCtx log_ctx)

Reopen a regular log file with the side-affect of truncating it.

This is useful to clear the log file and start a new one, or to re-open the file after its been moved by something external (eg. logrotate).

Definition at line 629 of file util-logopenfile.c.

References LogFileCtx_::filename, LogFileCtx_::fp, LogFileCtx_::is_regular, SCLogDebug, and SCLogWarning.

◆ SCLogOpenThreadedFile()

bool SCLogOpenThreadedFile ( const char *  log_path,
const char *  append,
LogFileCtx parent_ctx 

Definition at line 359 of file util-logopenfile.c.

References HashTableInit(), LogThreadedFileCtx_::ht, SCCalloc, SCLogError, and LogFileCtx_::threads.

Here is the call graph for this function: