# give/4.16.8.1/src/Log/LogFactory.php

GiveWP – Donation Plugin and Fundraising Platform, version 4.16.8.1. 75 lines.

- Page: https://pluginprobe.com/plugins/give/4.16.8.1/code/src/Log/LogFactory.php
- Raw: https://pluginprobe.com/plugins/give/4.16.8.1/raw/src/Log/LogFactory.php
- Modified: 2021-11-23T23:55:18+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/give/4.16.8.1/code/src/Log/LogFactory.php#L10-L20`.

```php
<?php

namespace Give\Log;

use Give\Log\ValueObjects\LogCategory;
use Give\Log\ValueObjects\LogType;

/**
 * Class LogFactory
 * @package Give\Log
 *
 * @since 2.10.0
 */
class LogFactory
{
    /**
     * Make LogModel instance
     *
     * @param string      $type
     * @param string      $message
     * @param string      $category
     * @param string      $source
     * @param array       $context
     * @param int|null    $logId
     * @param string|null $date
     *
     * @return LogModel
     */
    public static function make($type, $message, $category, $source, $context = [], $logId = null, $date = null)
    {
        return new LogModel($type, $message, $category, $source, $context, $logId, $date);
    }

    /**
     * Make LogModel instance from array of data
     *
     * @param array $data
     *
     * @return LogModel
     */
    public static function makeFromArray($data)
    {
        // Get default
        $data = array_merge(static::getDefaults(), $data);

        return new LogModel(
            $data['type'],
            $data['message'],
            $data['category'],
            $data['source'],
            $data['context'],
            $data['id'],
            $data['date']
        );
    }

    /**
     * Get log default fields array
     *
     * @return array
     */
    public static function getDefaults()
    {
        return [
            'type' => LogType::getDefault(),
            'message' => esc_html__('Something went wrong', 'give'),
            'category' => LogCategory::getDefault(),
            'source' => esc_html__('Give Core', 'give'),
            'context' => [],
            'id' => null,
            'date' => date('Y-m-d H:i:s'),
        ];
    }
}

```
