## Runtime Configuration

The behaviour of these functions is affected by settings in php.ini.

Seaslog Configure Options
Name | Default | Changeable | Changelog
--- | --- | --- | ---
seaslog.appender | 1 | `INI_SYSTEM` |
seaslog.appender_retry | 0 | `INI_ALL` |
seaslog.level | 8 | `INI_ALL` |
seaslog.remote_host | 127.0.0.1 | `INI_ALL` |
seaslog.remote_port | 514 | `INI_ALL` |
seaslog.remote_timeout | 1 | `INI_SYSTEM` |
seaslog.default_basepath | /var/log/www | `INI_SYSTEM` |
seaslog.default_logger | default | `INI_SYSTEM` |
seaslog.default_template | %T | %L | %P | %Q | %t | %M | `INI_SYSTEM` |
seaslog.default_datetime_format | Y-m-d H:i:s | `INI_SYSTEM` |
seaslog.trace_error | 1 | `INI_ALL` |
seaslog.trace_exception | 0 | `INI_SYSTEM` |
seaslog.trace_notice | 0 | `INI_ALL` |
seaslog.trace_warning | 0 | `INI_ALL` |
seaslog.use_buffer | 0 | `INI_SYSTEM` |
seaslog.buffer_size | 0 | `INI_ALL` |
seaslog.buffer_disabled_in_cli | 0 | `INI_SYSTEM` |
seaslog.disting_type | 0 | `INI_SYSTEM` |
seaslog.disting_folder | 1 | `INI_SYSTEM` |
seaslog.disting_by_hour | 0 | `INI_SYSTEM` |
seaslog.recall_depth | 0 | `INI_ALL` |
seaslog.trim_wrap | 0 | `INI_ALL` |
seaslog.ignore_warning | 1 | `INI_ALL` |
seaslog.throw_exception | 1 | `INI_ALL` |

Here's a short explanation of the configuration directives.

`seaslog.appender` int
  Switch the Record Log Data Store. 1File 2TCP 3UDP (Switch default 1) SeasLog will send log to tcp://remote_host:remote_port or udp://remote_host:remote_port server, when seaslog.appender configured to `2 (TCP)` or `3 (UDP)`. When SeasLog send log to TCP/UDP，style follow RFC5424. The `{logInfo}` affected by seaslog.default_template.

      The log style finally formatted such as:
      <15>1 2017-08-27T01:24:59+08:00 vagrant-ubuntu-trusty test/logger[27171]: 2016-06-25 00:59:43 | DEBUG | 21423 | 599157af4e937 | 1466787583.322 | this is a neeke debug
      <14>1 2017-08-27T01:24:59+08:00 vagrant-ubuntu-trusty test/logger[27171]: 2016-06-25 00:59:43 | INFO | 21423 | 599157af4e937 | 1466787583.323 | this is a info log
      <13>1 2017-08-27T01:24:59+08:00 vagrant-ubuntu-trusty test/logger[27171]: 2016-06-25 00:59:43 | NOTICE | 21423 | 599157af4e937 | 1466787583.324 | this is a notice log

`seaslog.appender_retry` int
  Record Log Retry Count. Default 0 (Do Not Retry)
`seaslog.buffer_disabled_in_cli` int
  Disable buffer in cli. 1-Y 0-N(Default) Switch the configure buffer_disabled_in_cli on. The buffer_disabled_in_cli switch default off. If switch buffer_disabled_in_cli on, and running in cli, seaslog.use_buffer setting will be discarded, Seaslog write to the Data Store IMMEDIATELY.
`seaslog.buffer_size` int
  Configure the buffer_size with 100. The buffer_size default 0, it’s meaning don’t use buffer. If buffer_size > 0,SeasLog will rewritten down into the Data Store when the prerecorded log in memory count >= this buffer_size,and then refresh the memory poll.
`seaslog.default_basepath` string
  Default Log Base Path. Defult "/var/log/www".
`seaslog.default_datetime_format` string
  The DateTime Style. Default "Y-m-d H:i:s".
`seaslog.default_logger` string
  Default Logger Path. Default "default".
`seaslog.disting_by_hour` int
  Switch use the logger with hour. 1-Y 0-N(Default)

  > Note: seaslog.disting_by_hour = 1 Switch use Logger DisTing by hour. It’s meaning SeasLog will create the file each one hour.

`seaslog.disting_folder` int
  Switch use the logger with folder. 1-Y(Default) 0-N

  > Note: seaslog.disting_folder = 1 Switch use Logger DisTing by folder, it’s meaning SeasLog will create the file deistic by folder, and when this configure close SeasLog will create file use underline connect Logger and Time like default_20180211.log.

`seaslog.disting_type` int
  Switch use the logger with type. 1-Y 0-N(Default)

  > Note: seaslog.disting_type = 1 Switch use Logger DisTing by type, it’s meaning SeasLog will create the file deistic info\warn\error and the other type.

`seaslog.ignore_warning` int
  Switch ignore SeasLog warning. 1-On(Default) 0-Off

  > Note: seaslog.ignore_warning = 1 Open a warning to ignore SeasLog itself. When directory permissions or receive server ports are blocked, they are ignored; when closed, a warning is thrown.

`seaslog.level` int
  Record logger level. Default 8 (All of them). 0-EMERGENCY 1-ALERT 2-CRITICAL 3-ERROR 4-WARNING 5-NOTICE 6-INFO 7-DEBUG 8-ALL

  > Note: Tips: The configuration item has changed since the 1.7.0 version. Before the 1.7.0 version, the smaller the value, the more logs are taken according to the level: 0-all 1-debug 2-info 3-notice 4-warning 5-error 6-critical 7-alert 8-emergency Before the 1.7.0 version, Default 0 (All of them).

`seaslog.recall_depth` int
  Log function recall depth.Will affected variable `LineNo` in `%F`. Default 0
`seaslog.remote_host` string
  If you use Record TCP or UDP, configure this remote ip. Default "127.0.0.1"
`seaslog.remote_port` int
  If you use Record TCP or UDP, configure this remote port. Default 514
`seaslog.remote_timeout` int
  If you use Record TCP or UDP, configure this remote timeout. Default 1 second
`seaslog.throw_exception` int
  Switch throw SeasLog exception. 1-On(Default) 0-Off

  > Note: seaslog.throw_exception = 1 Open an exception that throws the SeasLog to throw itself. When the directory authority or the receive server port is blocked, throw an exception; do not throw an exception when closed.

`seaslog.trace_error` int
  Automatic Record final error with default logger. 1-Y(Default) 0-N
`seaslog.trace_exception` int
  Automatic Record exception with default logger. 1-Y 0-N(Default)
`seaslog.trace_notice` int
  Automatic Record notice with default logger. 1-Y 0-N(Default)
`seaslog.trace_warning` int
  Automatic Record warning with default logger. 1-Y 0-N(Default)
`seaslog.trim_wrap` int
  Trim the \n and \r in log message. 1-On 0-Off(Default)
`seaslog.use_buffer` int
  Switch use the log buffer with memory. 1-Y 0-N(Default)

  > Note: seaslog.use_buffer = 1 Switch the configure use_buffer on. The use_buffer switch default off. If switch use_buffer on, SeasLog prerecord the log with memory, and them would be rewritten down into the Data Store by request shutdown or php process exit (PHP RSHUTDOWN or PHP MSHUTDOWN).

`seaslog.default_template` string
  Default Log template. Default "%T | %L | %P | %Q | %t | %M".

  > Note: The following default variables are provided, which can be used directly in the log template and replaced as a corresponding value when the log is eventually generated. Default log template is: `seaslog.default_template = "%T | %L | %P | %Q | %t | %M"`, that's mean,default log style is: `{dateTime} | {level} | {pid} | {uniqid} | {timeStamp} | {logInfo}` If you custom log template, such as: `seaslog.default_template = "[%T]:%L %P %Q %t %M"`, that's will mean,log style was custom as: `[{dateTime}]:{level} {pid} {uniqid} {timeStamp} {logInfo}`

  > Seaslog Default Variable Table
  > Variable Name | Description
  > --- | ---
  > %L | Level.
  > %M | Message.
  > %T | DateTime. Such as `2017-08-16 19:15:02`, affected by `seaslog.default_datetime_format`.
  > %t | Timestamp. Such as `1502882102.862`,accurate to milliseconds.
  > %Q | RequestId. To distinguish a single request, such as not invoking the `SeasLog::setRequestId($string)` function, the unique value generated by the built-in `static char *get_uniqid ()` function is used when the request is initialized.
  > %H | HostName.
  > %P | ProcessId.
  > %D | Domain:Port. Such as `www.cloudwise.com:80`; When Cli, Such as `cli`.
  > %R | Request URI. Such as `/app/user/signin`; When Cli it's the index script, Such as `CliIndex.php`.
  > %m | Request Method. Such as `Get`; When Cli it's the command script, Such as `/bin/bash`.
  > %I | Client IP; When Cli it's `local`. Priority value: HTTP_X_REAL_IP > HTTP_X_FORWARDED_FOR > REMOTE_ADDR
  > %F | FileName:LineNo. Such as `UserService.php:118`.
  > %U | MemoryUsage. byte. Call `zend_memory_usage`.
  > %u | PeakMemoryUsage. byte. Call `zend_memory_peak_usage`.
  > %C | `TODO` Class::Action. Such as `UserService::getUserInfo`

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open