{"size": 1820, "ext": "scrbl", "max_stars_repo_path": "pkgs/racket-doc/scribblings/reference/places-logging.scrbl", "max_stars_repo_name": "lkh01/racket", "max_stars_repo_stars_event_min_datetime": "2018-07-29T04:13:52.000Z", "max_stars_repo_stars_event_max_datetime": "2022-02-14T16:11:17.000Z", "max_issues_repo_path": "pkgs/racket-doc/scribblings/reference/places-logging.scrbl", "max_issues_repo_name": "lkh01/racket", "max_issues_repo_issues_event_min_datetime": "2017-08-25T20:26:37.000Z", "max_issues_repo_issues_event_max_datetime": "2022-02-26T17:48:40.000Z", "max_forks_repo_path": "pkgs/racket-doc/scribblings/reference/places-logging.scrbl", "max_forks_repo_name": "lkh01/racket", "max_forks_repo_forks_event_min_datetime": "2016-04-25T11:47:57.000Z", "max_forks_repo_forks_event_max_datetime": "2017-05-09T14:52:48.000Z"}
{"max_stars_count": 10, "max_issues_count": 15, "max_forks_count": 3, "avg_line_length": 34.3396226415, "max_line_length": 73, "alphanum_fraction": 0.7071428571}
#lang scribble/doc 
@(require "mz.rkt" (for-label racket/place))

@title[#:tag "place-logging"]{Places Logging}

Place events are reported to a logger named @racket['place].
In addition to its string message, each event logged for a place has
a data value that is an instance of a @racket[place-event]
@tech{prefab} structure:

@racketblock[
(struct place-event (place-id action value time)
  #:prefab)
]

The @racket[place-id] field is an exact integer that identifies a
place.

The @racket[time] field is an inexact number that represents time in
the same way as @racket[current-inexact-milliseconds].

The @racket[action] field is a symbol:

@itemlist[

 @item{@racket['create]: a place was created. This event is logged in the
       creating place, and the event's @racket[value] field has the
       ID for the created place.}

 @item{@racket['reap]: a place that was previously created in the
       current place has exited (and that fact has been detected,
       possibly via @racket[place-wait]). The event's @racket[value]
       field has the ID for the exited place.}

 @item{@racket['enter]: a place has started, logged within the started
       place. The event's @racket[value] field has @racket[#f].}

 @item{@racket['exit]: a place is exiting, logged within the exiting
       place. The event's @racket[value] field has @racket[#f].}

 @item{@racket['put]: a place-channel message has been sent. The
       event's @racket[value] field is a positive exact integer that
       approximates the message's size.}

 @item{@racket['get]: a place-channel message has been received. The
       event's @racket[value] field is a positive exact integer that
       approximates the message's size.}

]

@history[#:changed "6.0.0.2" @elem{Added logging via @racket['place]
         and @racket[place-event].}]
