This file is indexed.

/usr/lib/ocaml/netplex/netplex_log.mli is in libocamlnet-ocaml-dev 4.0.4-1build3.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
(* $Id: netplex_log.mli 1692 2012-02-05 18:44:00Z gerd $ *)

(** Loggers *)

(** A logger is usually configured in the config file. The [logging]
    section is inside [controller], e.g.

    {[ netplex {
         ...
         controller {
           ...
           logging { ... };
           ...
         }
         ...
       }
    ]}

    The possible types of [logging] sections are explained below.
    If there are several [logging] sections, the messages are sent to
    all configured loggers.

    Instead of configuring loggers in the config file, one can also
    create loggers from config objects like [generic_config].

    See also {!Netplex_intro.logging} for more documentation.
 *)

open Netplex_types

class type generic_config =
object
  method log_format : string
  method log_component : string
  method log_subchannel : string
  method log_max_level : level
end


val channel_logger : out_channel -> logger
  (** Outputs messages to the channel *)

val channel_logger_from_obj : generic_config -> out_channel -> logger
  (** Outputs messages to the channel *)

val stderr_logger_factory : logger_factory
  (** Reads a logging section like
    *
    * {[ logging {
    *       type = "stderr";
    *       format = "<format string>";
    *       component = "<name_of_component>";
    *       subchannel = "<name_of_subchannel>";
    *       max_level = "<max_level>";
    *    }
    * ]}
    *
    * - [format]: Optional format string. See below.
    * - [component]: Optional component selector. See below.
    * - [subchannel]: Optional subchannel selector. See below.
    * - [max_level]: Optional maximum log level. See below.
   *)


val file_logger : string -> logger
  (** Writes messages to this file *)

val file_logger_from_obj : generic_config -> string -> logger
  (** Writes messages to this file *)

val file_logger_factory : logger_factory
  (** Reads a logging section like
    *
    * {[ logging {
    *       type = "file";
    *       file = "/path/to/logfile";
    *       format = "<format string>";
    *       component = "<name_of_component>";
    *       subchannel = "<name_of_subchannel>";
    *       max_level = "<max_level>";
    *    }
    * ]}
    *
    * - [file]: Log messages are appended to this file.
    * - [format]: Optional format string. See below.
    * - [component]: Optional component selector. See below.
    * - [subchannel]: Optional subchannel selector. See below.
    * - [max_level]: Optional maximum log level. See below.
   *)

class type multi_file_config =
object
  inherit generic_config
  method log_directory : string
  method log_files :
    (string * string * [ level | `All ] * string * string) list
    (** Triples [ (component, subchannel, max_level, file, format) ]. Use [*] as 
        wildcard in [component] and [subchannel].

        Currently, [`All] is a synonym for the [`Debug] level.
      *)
end

val multi_file_logger : multi_file_config -> logger

val multi_file_logger_factory : logger_factory
  (**  Reads a logging section like
    *
    * {[ logging {
    *       type = "multi_file";
    *       directory = "/path/to/logdir";
    *       format = "<format string>";
    *       file {
    *           component = "<name_of_component>";
    *           subchannel = "<name_of_subchannel>";
    *           max_level = "<max_level>";
    *           file = "<logfile>";
    *           format = "<format string>";
    *       };
    *       file { ... }; ...
    *    }
    * ]}
    *
    * - [format]: Optional format string. See below.
    * - [component]: Optional component selector. See below.
    * - [subchannel]: Optional subchannel selector. See below.
    * - [max_level]: Optional maximum log level. See below.
   *)

class type syslog_config =
object
  inherit generic_config
  method log_identifier : string
  method log_facility : Netsys_posix.syslog_facility
end

val syslog_logger : syslog_config -> logger
  (** Creates a logger writing to syslog *)

val syslog_logger_factory : logger_factory
  (** Reads a logging section like
    *
    * {[ logging {
    *       type = "syslog";
    *       format = "<format string>";
    *       identifier = "<identifier>";
    *       facility = "<facility name>";
    *       component = "<name_of_component>";
    *       subchannel = "<name_of_subchannel>";
    *       max_level = "<max_level>";
    *    }
    * ]}
    *
    * All parameters except [type] are optional:
    * - [facility]: The faciltiy like [LOCAL0], [USER], ...
    * - [identifier]: An identifier prefixing every message
    * - [format]: Optional format string. See below.
    * - [component]: Optional component selector. See below.
    * - [subchannel]: Optional subchannel selector. See below.
    * - [max_level]: Optional maximum log level. See below.
   *)

val logger_factories :  logger_factory list
  (** All built-in logger factories *)

val level_weight : level -> int
  (** An integer corresponding to the level *)

val level_of_string : string -> level
  (** Convert a string to a level *)



(** {2 Common parameters} *)

(** Logging parameters that can occur in all logging configurations: *)

(** {3 format}
  *
  * The format string may include variable
  * parts in the syntax [$name] or [${name}]. The following variable
  * specifications are defined:
  * - [timestamp]: the time in standard format (as set in
      {!Netlog.current_formatter})
  * - [timestamp:<format>] the time in custom format where [<format>] is a
  *   {!Netdate} format string
  * - [timestamp:unix]: the time in seconds since the epoch
  * - [component]: the name of the component emitting the log message
  * - [subchannel]: the name of the subchannel
  * - [level]: the log level
  * - [message]: the log message
 *)

(** {3 component} 
  *
  * The [component] name restricts logging to the given Netplex component.
  * One can use the wildcard "*".
 *)

(** {3 subchannel} 
  *
  * The [subchannel] name restricts logging to this subchannel.
  * One can use the wildcard "*".
 *)

(** {3 max_level}
  *
  * The [max_level] specifier restricts logging to messages with at most
  * this level. Levels are "emerg", "alert", "crit", "err", "warning",
  * "notice", "info", "debug" (in order of increasing level).
 *)