<feed xmlns='http://www.w3.org/2005/Atom'>
<title>otp.git/lib/kernel/doc/src, branch OTP-21.3.1</title>
<subtitle>Mirror of Erlang/OTP repository.
</subtitle>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/'/>
<entry>
<title>Prepare release</title>
<updated>2019-03-11T10:52:56+00:00</updated>
<author>
<name>Erlang/OTP</name>
<email>otp@erlang.org</email>
</author>
<published>2019-03-11T10:52:56+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=9780184b2cf76eced1ef987408073e96cc29f3bb'/>
<id>9780184b2cf76eced1ef987408073e96cc29f3bb</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'siri/logger/file-logging-improvements' into maint</title>
<updated>2019-03-08T08:54:26+00:00</updated>
<author>
<name>Siri Hansen</name>
<email>siri@erlang.org</email>
</author>
<published>2019-03-08T08:54:26+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=23ecfc137a2e0559b56b2467121f33eb9c3d7c00'/>
<id>23ecfc137a2e0559b56b2467121f33eb9c3d7c00</id>
<content type='text'>
* siri/logger/file-logging-improvements:
  [logger] Add option file_check to logger_std_h
  [logger] Add log file rotation by options to logger_std_h
  [logger] Add better control of file modes in logger_std_h
  [logger] Refactor logger_std_h
  [logger] Make sure log file is re-opened with configured file options
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* siri/logger/file-logging-improvements:
  [logger] Add option file_check to logger_std_h
  [logger] Add log file rotation by options to logger_std_h
  [logger] Add better control of file modes in logger_std_h
  [logger] Refactor logger_std_h
  [logger] Make sure log file is re-opened with configured file options
</pre>
</div>
</content>
</entry>
<entry>
<title>[logger] Add option file_check to logger_std_h</title>
<updated>2019-03-08T08:35:44+00:00</updated>
<author>
<name>Siri Hansen</name>
<email>siri@erlang.org</email>
</author>
<published>2019-03-04T18:15:24+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=e2af137524ac6a645689daf309871893dcc655a1'/>
<id>e2af137524ac6a645689daf309871893dcc655a1</id>
<content type='text'>
OTP-15663

This option indicates how often the handler shall check if the log
file still exists and if the inode is changed.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
OTP-15663

This option indicates how often the handler shall check if the log
file still exists and if the inode is changed.
</pre>
</div>
</content>
</entry>
<entry>
<title>[logger] Add log file rotation by options to logger_std_h</title>
<updated>2019-03-08T08:35:34+00:00</updated>
<author>
<name>Siri Hansen</name>
<email>siri@erlang.org</email>
</author>
<published>2019-02-28T19:49:08+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=56cacefda4f18c8fdc45839b6bec1d07d0d2d78e'/>
<id>56cacefda4f18c8fdc45839b6bec1d07d0d2d78e</id>
<content type='text'>
OTP-15479
OTP-15662

New configuration map for logger_std_h:

 #{type =&gt; file,
   file =&gt; file:filename(),
   modes =&gt; [file:mode()],
   max_no_bytes =&gt; pos_integer() | infinity,
   max_no_files =&gt; non_neg_integer(),
   compress_on_rotate =&gt; boolean()}

For backwards compatibility, the old variant for specifying the file
name via the 'type' parameter is still supported, i.e. {file,FileName}
and {file,FileName,Modes}, but it is no longer documented.

Rotation scheme:
The current log file always has the same name, and the archived files
get extensions ".0", ".1", ... The newest archive has extension ".0",
and the oldest archive has the highest number.

If 'compress_on_rotate' is set to true, the archived files are gzipped
and get the additional extension ".gz", e.g. error.log.0.gz.

Rotation is turned off by setting 'max_no_bytes' to infinity. Setting
'max_no_files' to 0 does not turn off rotation, but only specifies
that no archives are to be saved.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
OTP-15479
OTP-15662

New configuration map for logger_std_h:

 #{type =&gt; file,
   file =&gt; file:filename(),
   modes =&gt; [file:mode()],
   max_no_bytes =&gt; pos_integer() | infinity,
   max_no_files =&gt; non_neg_integer(),
   compress_on_rotate =&gt; boolean()}

For backwards compatibility, the old variant for specifying the file
name via the 'type' parameter is still supported, i.e. {file,FileName}
and {file,FileName,Modes}, but it is no longer documented.

Rotation scheme:
The current log file always has the same name, and the archived files
get extensions ".0", ".1", ... The newest archive has extension ".0",
and the oldest archive has the highest number.

If 'compress_on_rotate' is set to true, the archived files are gzipped
and get the additional extension ".gz", e.g. error.log.0.gz.

Rotation is turned off by setting 'max_no_bytes' to infinity. Setting
'max_no_files' to 0 does not turn off rotation, but only specifies
that no archives are to be saved.
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'maint-21' into maint</title>
<updated>2019-03-06T16:03:03+00:00</updated>
<author>
<name>Rickard Green</name>
<email>rickard@erlang.org</email>
</author>
<published>2019-03-06T16:03:03+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=933e1671a99958540666781082188f7335fb2823'/>
<id>933e1671a99958540666781082188f7335fb2823</id>
<content type='text'>
* maint-21:
  Updated OTP version
  Prepare release
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* maint-21:
  Updated OTP version
  Prepare release
</pre>
</div>
</content>
</entry>
<entry>
<title>[logger] Add better control of file modes in logger_std_h</title>
<updated>2019-03-06T11:10:26+00:00</updated>
<author>
<name>Siri Hansen</name>
<email>siri@erlang.org</email>
</author>
<published>2019-03-05T10:25:00+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=e03c2bd640e1fc1503e92dfd74991f4205973c61'/>
<id>e03c2bd640e1fc1503e92dfd74991f4205973c61</id>
<content type='text'>
OTP-15602

It is allowed to set file modes for the handler to use when opening
its log file. The given modes were earlier accepted without any
checks, which could make the handler behave unexpectedly. This commit
makes sure that

* if none of write, append or exclusive is given, then append is added
* if raw is not given, it is added
* if delayed_write or {delayed_write,_,_} is not given, then
  delayed_write is added
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
OTP-15602

It is allowed to set file modes for the handler to use when opening
its log file. The given modes were earlier accepted without any
checks, which could make the handler behave unexpectedly. This commit
makes sure that

* if none of write, append or exclusive is given, then append is added
* if raw is not given, it is added
* if delayed_write or {delayed_write,_,_} is not given, then
  delayed_write is added
</pre>
</div>
</content>
</entry>
<entry>
<title>Prepare release</title>
<updated>2019-03-05T22:50:43+00:00</updated>
<author>
<name>Erlang/OTP</name>
<email>otp@erlang.org</email>
</author>
<published>2019-03-05T22:50:43+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=60887ef525ca84aae4b146828be5dfb124d2c00d'/>
<id>60887ef525ca84aae4b146828be5dfb124d2c00d</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'siri/logger/os-timestamp/OTP-15625' into maint</title>
<updated>2019-03-04T11:02:26+00:00</updated>
<author>
<name>Siri Hansen</name>
<email>siri@erlang.org</email>
</author>
<published>2019-03-04T11:02:26+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=6d795779f770deb1829e1df2fa4a75f41e602d35'/>
<id>6d795779f770deb1829e1df2fa4a75f41e602d35</id>
<content type='text'>
* siri/logger/os-timestamp/OTP-15625:
  Update preloaded
  [logger] Change timestamp from erlang:system_time to os:system_time
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* siri/logger/os-timestamp/OTP-15625:
  Update preloaded
  [logger] Change timestamp from erlang:system_time to os:system_time
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge pull request #2164 from josevalim/jv-set-env-maint</title>
<updated>2019-03-04T10:32:26+00:00</updated>
<author>
<name>Siri Hansen</name>
<email>erlangsiri@gmail.com</email>
</author>
<published>2019-03-04T10:32:26+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=fec6e81808d654d901ca7512dfcccd4894f86548'/>
<id>fec6e81808d654d901ca7512dfcccd4894f86548</id>
<content type='text'>
Add application:set_env/1 and application:set_env/2

OTP-15642</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add application:set_env/1 and application:set_env/2

OTP-15642</pre>
</div>
</content>
</entry>
<entry>
<title>Add application:set_env/1 and application:set_env/2</title>
<updated>2019-03-01T14:37:50+00:00</updated>
<author>
<name>José Valim</name>
<email>jose.valim@plataformatec.com.br</email>
</author>
<published>2019-01-16T14:25:21+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=d92eb79322fa4ee45ce1c0c7c4ed8a573673474b'/>
<id>d92eb79322fa4ee45ce1c0c7c4ed8a573673474b</id>
<content type='text'>
It is equivalent to calling application:set_env/4 on
each application individually, except it is more efficient.

When given duplicate apps or duplicate keys, set_env/1
and set_env/2 will warn. The warning will also be emitted
during boot:

    $ erl -config dupkeys.config -s erlang halt
    2019-02-27 11:16:02.653100 application: kernel; duplicate parameter: key1
    =WARNING REPORT==== 27-Feb-2019::11:16:02.653100 ===
    application: kernel; duplicate parameter: key1

    $ erl -config dupapps.config -s erlang halt
    2019-02-27 11:16:02.653100 duplicate application config: kernel
    =WARNING REPORT==== 27-Feb-2019::11:16:02.653100 ===
    duplicate application config: kernel

Prior to this patch, the behaviour was unspecified,
and duplicate keys and duplicate apps would behave
different depending on the amount of config, the name
of the config files, and how those configs would be
listed. The goal is to raise an error in the future.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It is equivalent to calling application:set_env/4 on
each application individually, except it is more efficient.

When given duplicate apps or duplicate keys, set_env/1
and set_env/2 will warn. The warning will also be emitted
during boot:

    $ erl -config dupkeys.config -s erlang halt
    2019-02-27 11:16:02.653100 application: kernel; duplicate parameter: key1
    =WARNING REPORT==== 27-Feb-2019::11:16:02.653100 ===
    application: kernel; duplicate parameter: key1

    $ erl -config dupapps.config -s erlang halt
    2019-02-27 11:16:02.653100 duplicate application config: kernel
    =WARNING REPORT==== 27-Feb-2019::11:16:02.653100 ===
    duplicate application config: kernel

Prior to this patch, the behaviour was unspecified,
and duplicate keys and duplicate apps would behave
different depending on the amount of config, the name
of the config files, and how those configs would be
listed. The goal is to raise an error in the future.
</pre>
</div>
</content>
</entry>
</feed>
