
Ancient wild fens on Anglesey are being saved from disappearing thanks to the world-leading ingenuity of a Devon company. The wetlands are being restored to how the landscape was hundreds of years ago in a Natural Resources Wales (NRW) project. It is the biggest wetlands restoration project in Wales, and for vital help NRW turned to award-winning Mid Devon firm Loglogic.
Loglogic has the world’s leading reputation for making reed harvesting and wetland management machinery.
Now, equipment built by Loglogic has been deployed for use on the ambitious conservation plan, which aims to promote ecosystem service delivery across more than 1,800 acres (750 hectares) of wetlands.
Loglogic has provided a Softrak ‘cut and collect’ vehicle which can harvest a range of vegetation, working in water up to 14 inches (350 mm) deep and with minimal damage to flora and fauna on the ground over which it travels.
The £100,000 Softrak is one of Loglogic’s best-selling systems and is already used for important conservation work in places such as the Somerset Levels and the Norfolk Broads.
It has been especially designed to have extremely low ground pressure, which allows the vehicle to be used in environmentally sensitive areas and particularly to reach sites previously deemed inaccessible.
Loglogic sales and marketing director Graham Mitchell has just returned to Devon after a stay in Anglesey to train local conservation workers in how to operate and maintain the Softrak system.
Mr Mitchell said: “We were delighted when Natural Resources Wales asked Loglogic to tender for providing equipment they needed to clear invasive vegetation without at the same time destroying the area’s important rare plant life.
“By helping to restore the fens we are also helping to protect endangered wildlife such as the Marsh Fritillary butterfly and the Southern Damselfly, as well as otters, fly orchids, and the Yellowhammer bird.”
Application 0.000 seconds (+0.000); 0.71 MB (+0.709) - afterLoadApplication 0.031 seconds (+0.031); 3.71 MB (+3.004) - afterInitialiseApplication 0.045 seconds (+0.014); 5.11 MB (+1.392) - afterRouteApplication 0.084 seconds (+0.039); 6.91 MB (+1.800) - afterDispatchApplication 0.086 seconds (+0.002); 6.97 MB (+0.067) - afterRender6.97 MB (7,309,288 Bytes)SELECT `data`
FROM `rtj1k_session`
WHERE `session_id` = 'skfs45u9c397qpd92vdto69tm5'DELETE
FROM `rtj1k_session`
WHERE `time` < '1774899749'SELECT `session_id`
FROM `rtj1k_session`
WHERE `session_id` = 'skfs45u9c397qpd92vdto69tm5'
LIMIT 0, 1INSERT INTO `rtj1k_session`
(`session_id`, `client_id`, `time`)
VALUES
('skfs45u9c397qpd92vdto69tm5', 0, '1774900649')SELECT extension_id AS id, element AS "option", params, enabled
FROM rtj1k_extensions
WHERE `type` = 'component'
AND `element` = 'com_users'SELECT b.id
FROM rtj1k_usergroups AS a
LEFT JOIN rtj1k_usergroups AS b
ON b.lft <= a.lft
AND b.rgt >= a.rgt
WHERE a.id = 1SELECT id, rules
FROM `rtj1k_viewlevels`SELECT folder AS type, element AS name, params
FROM rtj1k_extensions
WHERE enabled >= 1
AND type ='plugin'
AND state >= 0
AND access IN (1,1)
ORDER BY orderingSELECT extension_id AS id, element AS "option", params, enabled
FROM rtj1k_extensions
WHERE `type` = 'component'
AND `element` = 'com_languages'SELECT m.id, m.menutype, m.title, m.alias, m.note, m.path AS route, m.link, m.type, m.level, m.language,`m`.`browserNav`, m.access, m.params, m.home, m.img, m.template_style_id, m.component_id, m.parent_id,e.element as component
FROM rtj1k_menu AS m
LEFT JOIN rtj1k_extensions AS e
ON m.component_id = e.extension_id
WHERE m.published = 1
AND m.parent_id > 0
AND m.client_id = 0
ORDER BY m.lftSELECT extension_id AS id, element AS "option", params, enabled
FROM rtj1k_extensions
WHERE `type` = 'component'
AND `element` = 'com_content'SELECT c.id, c.asset_id, c.access, c.alias, c.checked_out, c.checked_out_time,
c.created_time, c.created_user_id, c.description, c.extension, c.hits, c.language, c.level,
c.lft, c.metadata, c.metadesc, c.metakey, c.modified_time, c.note, c.params, c.parent_id,
c.path, c.published, c.rgt, c.title, c.modified_user_id, c.version,
CASE WHEN CHAR_LENGTH(c.alias) != 0 THEN CONCAT_WS(':', c.id, c.alias) ELSE c.id END as slug
FROM rtj1k_categories as c
LEFT JOIN rtj1k_categories AS s
ON (s.lft <= c.lft
AND s.rgt >= c.rgt) OR (s.lft > c.lft
AND s.rgt < c.rgt)
LEFT JOIN (SELECT cat.id as id
FROM rtj1k_categories AS cat JOIN rtj1k_categories AS parent
ON cat.lft BETWEEN parent.lft
AND parent.rgt
WHERE parent.extension = 'com_content'
AND parent.published != 1
GROUP BY cat.id) AS badcats
ON badcats.id = c.id
WHERE (c.extension='com_content' OR c.extension='system')
AND c.access IN (1,1)
AND c.published = 1
AND s.id=336
AND badcats.id is null
GROUP BY c.id, c.asset_id, c.access, c.alias, c.checked_out, c.checked_out_time,
c.created_time, c.created_user_id, c.description, c.extension, c.hits, c.language, c.level,
c.lft, c.metadata, c.metadesc, c.metakey, c.modified_time, c.note, c.params, c.parent_id,
c.path, c.published, c.rgt, c.title, c.modified_user_id, c.version
ORDER BY c.lftSELECT alias, catid
FROM rtj1k_content
WHERE id = 336SELECT alias, catid
FROM rtj1k_content
WHERE id = 336SELECT alias
FROM rtj1k_content
WHERE id=336SELECT c.id, c.asset_id, c.access, c.alias, c.checked_out, c.checked_out_time,
c.created_time, c.created_user_id, c.description, c.extension, c.hits, c.language, c.level,
c.lft, c.metadata, c.metadesc, c.metakey, c.modified_time, c.note, c.params, c.parent_id,
c.path, c.published, c.rgt, c.title, c.modified_user_id, c.version,
CASE WHEN CHAR_LENGTH(c.alias) != 0 THEN CONCAT_WS(':', c.id, c.alias) ELSE c.id END as slug
FROM rtj1k_categories as c
LEFT JOIN rtj1k_categories AS s
ON (s.lft <= c.lft
AND s.rgt >= c.rgt) OR (s.lft > c.lft
AND s.rgt < c.rgt)
LEFT JOIN (SELECT cat.id as id
FROM rtj1k_categories AS cat JOIN rtj1k_categories AS parent
ON cat.lft BETWEEN parent.lft
AND parent.rgt
WHERE parent.extension = 'com_content'
AND parent.published != 1
GROUP BY cat.id) AS badcats
ON badcats.id = c.id
WHERE (c.extension='com_content' OR c.extension='system')
AND c.access IN (1,1)
AND c.published = 1
AND s.id=39
AND badcats.id is null
GROUP BY c.id, c.asset_id, c.access, c.alias, c.checked_out, c.checked_out_time,
c.created_time, c.created_user_id, c.description, c.extension, c.hits, c.language, c.level,
c.lft, c.metadata, c.metadesc, c.metakey, c.modified_time, c.note, c.params, c.parent_id,
c.path, c.published, c.rgt, c.title, c.modified_user_id, c.version
ORDER BY c.lftSELECT *
FROM rtj1k_languages
WHERE published=1
ORDER BY ordering ASCSELECT id, home, template, s.params
FROM rtj1k_template_styles as s
LEFT JOIN rtj1k_extensions as e
ON e.element=s.template
AND e.type='template'
AND e.client_id=s.client_id
WHERE s.client_id = 0
AND e.enabled = 1SELECT a.rules
FROM rtj1k_assets AS a
WHERE (a.id = 1)
GROUP BY a.id, a.rules, a.lftSELECT b.rules
FROM rtj1k_assets AS a
LEFT JOIN rtj1k_assets AS b
ON b.lft <= a.lft
AND b.rgt >= a.rgt
WHERE (a.name = 'com_content')
GROUP BY b.id, b.rules, b.lft
ORDER BY b.lftSELECT a.id, a.asset_id, a.title, a.alias, a.introtext, a.fulltext,
CASE WHEN badcats.id is null THEN a.state ELSE 0 END AS state, a.catid, a.created, a.created_by, a.created_by_alias,
CASE WHEN a.modified = '0000-00-00 00:00:00' THEN a.created ELSE a.modified END as modified, a.modified_by, a.checked_out, a.checked_out_time, a.publish_up, a.publish_down, a.images, a.urls, a.attribs, a.version, a.ordering, a.metakey, a.metadesc, a.access, a.hits, a.metadata, a.featured, a.language, a.xreference,c.title AS category_title, c.alias AS category_alias, c.access AS category_access,u.name AS author,contact.id as contactid,parent.title as parent_title, parent.id as parent_id, parent.path as parent_route, parent.alias as parent_alias,ROUND(v.rating_sum / v.rating_count, 0) AS rating, v.rating_count as rating_count
FROM rtj1k_content AS a
LEFT JOIN rtj1k_categories AS c
on c.id = a.catid
LEFT JOIN rtj1k_users AS u
on u.id = a.created_by
LEFT JOIN (
SELECT contact.user_id, MAX(contact.id) AS id, contact.language
FROM rtj1k_contact_details AS contact
WHERE contact.published = 1
GROUP BY contact.user_id, contact.language) AS contact
ON contact.user_id = a.created_by
LEFT JOIN rtj1k_categories as parent
ON parent.id = c.parent_id
LEFT JOIN rtj1k_content_rating AS v
ON a.id = v.content_id
LEFT
OUTER JOIN (SELECT cat.id as id
FROM rtj1k_categories AS cat JOIN rtj1k_categories AS parent
ON cat.lft BETWEEN parent.lft
AND parent.rgt
WHERE parent.extension = 'com_content'
AND parent.published <= 0
GROUP BY cat.id) AS badcats
ON badcats.id = c.id
WHERE a.id = 336
AND (a.publish_up = '0000-00-00 00:00:00' OR a.publish_up <= '2026-03-30 19:57:29')
AND (a.publish_down = '0000-00-00 00:00:00' OR a.publish_down >= '2026-03-30 19:57:29')
AND (a.state = 1 OR a.state =2)SELECT extension_id AS id, element AS "option", params, enabled
FROM rtj1k_extensions
WHERE `type` = 'component'
AND `element` = 'com_tags'SELECT `m`.`tag_id`,`t`.*
FROM `rtj1k_contentitem_tag_map` AS m
INNER JOIN `rtj1k_tags` AS t
ON `m`.`tag_id` = `t`.`id`
WHERE `m`.`type_alias` = 'com_content.article'
AND `m`.`content_item_id` = 336
AND `t`.`published` = 1
AND t.access IN (1,1)UPDATE rtj1k_content
SET hits = hits + 1
WHERE id = 336UPDATE `rtj1k_session`
SET `data` = '__default|a:7:{s:15:\"session.counter\";i:1;s:19:\"session.timer.start\";i:1774900649;s:18:\"session.timer.last\";i:1774900649;s:17:\"session.timer.now\";i:1774900649;s:22:\"session.client.browser\";s:103:\"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)\";s:8:\"registry\";O:9:\"JRegistry\":1:{s:7:\"\\0\\0\\0data\";O:8:\"stdClass\":0:{}}s:4:\"user\";O:5:\"JUser\":24:{s:9:\"\\0\\0\\0isRoot\";b:0;s:2:\"id\";i:0;s:4:\"name\";N;s:8:\"username\";N;s:5:\"email\";N;s:8:\"password\";N;s:14:\"password_clear\";s:0:\"\";s:5:\"block\";N;s:9:\"sendEmail\";i:0;s:12:\"registerDate\";N;s:13:\"lastvisitDate\";N;s:10:\"activation\";N;s:6:\"params\";N;s:6:\"groups\";a:1:{i:0;i:1;}s:5:\"guest\";i:1;s:13:\"lastResetTime\";N;s:10:\"resetCount\";N;s:10:\"\\0\\0\\0_params\";O:9:\"JRegistry\":1:{s:7:\"\\0\\0\\0data\";O:8:\"stdClass\":0:{}}s:14:\"\\0\\0\\0_authGroups\";a:1:{i:0;i:1;}s:14:\"\\0\\0\\0_authLevels\";a:2:{i:0;i:1;i:1;i:1;}s:15:\"\\0\\0\\0_authActions\";N;s:12:\"\\0\\0\\0_errorMsg\";N;s:10:\"\\0\\0\\0_errors\";a:0:{}s:3:\"aid\";i:0;}}'
, `time` = '1774900649'
WHERE `session_id` = 'skfs45u9c397qpd92vdto69tm5'4 × SELECT extension_id AS id, element AS "option", params, enabled
FROM rtj1k_extensions2 × SELECT alias, catid
FROM rtj1k_content2 × SELECT c.id, c.asset_id, c.access, c.alias, c.checked_out, c.checked_out_time, c.created_time, c.created_user_id, c.description, c.extension, c.hits, c.language, c.level, c.lft, c.metadata, c.metadesc, c.metakey, c.modified_time, c.note, c.params, c.parent_id, c.path, c.published, c.rgt, c.title, c.modified_user_id, c.version,
CASE WHEN CHAR_LENGTH(c.alias) != 0 THEN CONCAT_WS(':', c.id, c.alias) ELSE c.id END as slug
FROM rtj1k_categories as c
LEFT JOIN rtj1k_categories AS s
ON (s.lft <= c.lft
AND s.rgt >= c.rgt) OR (s.lft > c.lft
AND s.rgt < c.rgt)
LEFT JOIN (SELECT cat.id as id
FROM rtj1k_categories AS cat JOIN rtj1k_categories AS parent
ON cat.lft BETWEEN parent.lft
AND parent.rgt1 × SELECT a.rules
FROM rtj1k_assets AS a1 × SELECT id, home, template, s.params
FROM rtj1k_template_styles as s
LEFT JOIN rtj1k_extensions as e
ON e.element=s.template
AND e.type='template'
AND e.client_id=s.client_id1 × SELECT b.rules
FROM rtj1k_assets AS a
LEFT JOIN rtj1k_assets AS b
ON b.lft <= a.lft
AND b.rgt >= a.rgt1 × SELECT a.id, a.asset_id, a.title, a.alias, a.introtext, a.fulltext,
CASE WHEN badcats.id is null THEN a.state ELSE 0 END AS state, a.catid, a.created, a.created_by, a.created_by_alias,
CASE WHEN a.modified = '0000-00-00 00:00:00' THEN a.created ELSE a.modified END as modified, a.modified_by, a.checked_out, a.checked_out_time, a.publish_up, a.publish_down, a.images, a.urls, a.attribs, a.version, a.ordering, a.metakey, a.metadesc, a.access, a.hits, a.metadata, a.featured, a.language, a.xreference,c.title AS category_title, c.alias AS category_alias, c.access AS category_access,u.name AS author,contact.id as contactid,parent.title as parent_title, parent.id as parent_id, parent.path as parent_route, parent.alias as parent_alias,ROUND(v.rating_sum / v.rating_count, 0) AS rating, v.rating_count as rating_count
FROM rtj1k_content AS a
LEFT JOIN rtj1k_categories AS c
on c.id = a.catid
LEFT JOIN rtj1k_users AS u
on u.id = a.created_by
LEFT JOIN ( SELECT contact.user_id, MAX(contact.id) AS id, contact.language
FROM rtj1k_contact_details AS contact1 × SELECT `m`.`tag_id`,`t`.*
FROM `rtj1k_contentitem_tag_map` AS m
INNER JOIN `rtj1k_tags` AS t
ON `m`.`tag_id` = `t`.`id`1 × SELECT *
FROM rtj1k_languages1 × SELECT alias
FROM rtj1k_content1 × SELECT folder AS type, element AS name, params
FROM rtj1k_extensions1 × SELECT id, rules
FROM `rtj1k_viewlevels1 × SELECT m.id, m.menutype, m.title, m.alias, m.note, m.path AS route, m.link, m.type, m.level, m.language,`m`.`browserNav`, m.access, m.params, m.home, m.img, m.template_style_id, m.component_id, m.parent_id,e.element as component
FROM rtj1k_menu AS m
LEFT JOIN rtj1k_extensions AS e
ON m.component_id = e.extension_id1 × SELECT `data`
FROM `rtj1k_session`1 × SELECT `session_id`
FROM `rtj1k_session`1 × SELECT b.id
FROM rtj1k_usergroups AS a
LEFT JOIN rtj1k_usergroups AS b
ON b.lft <= a.lft
AND b.rgt >= a.rgt1 × UPDATE `rtj1k_session`
SET `data` = '__default|a:7:{s:15:\"session.counter\";i:1;s:19:\"session.timer.start\";i:1774900649;s:18:\"session.timer.last\";i:1774900649;s:17:\"session.timer.now\";i:1774900649;s:22:\"session.client.browser\";s:103:\"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)\";s:8:\"registry\";O:9:\"JRegistry\":1:{s:7:\"\\0\\0\\0data\";O:8:\"stdClass\":0:{}}s:4:\"user\";O:5:\"JUser\":24:{s:9:\"\\0\\0\\0isRoot\";b:0;s:2:\"id\";i:0;s:4:\"name\";N;s:8:\"username\";N;s:5:\"email\";N;s:8:\"password\";N;s:14:\"password_clear\";s:0:\"\";s:5:\"block\";N;s:9:\"sendEmail\";i:0;s:12:\"registerDate\";N;s:13:\"lastvisitDate\";N;s:10:\"activation\";N;s:6:\"params\";N;s:6:\"groups\";a:1:{i:0;i:1;}s:5:\"guest\";i:1;s:13:\"lastResetTime\";N;s:10:\"resetCount\";N;s:10:\"\\0\\0\\0_params\";O:9:\"JRegistry\":1:{s:7:\"\\0\\0\\0data\";O:8:\"stdClass\":0:{}}s:14:\"\\0\\0\\0_authGroups\";a:1:{i:0;i:1;}s:14:\"\\0\\0\\0_authLevels\";a:2:{i:0;i:1;i:1;i:1;}s:15:\"\\0\\0\\0_authActions\";N;s:12:\"\\0\\0\\0_errorMsg\";N;s:10:\"\\0\\0\\0_errors\";a:0:{}s:3:\"aid\";i:0;}}' , `time` = '1774900649'1 × UPDATE rtj1k_content
SET hits = hits + 11 × INSERT INTO `rtj1k_session` (`session_id`, `client_id`, `time`)
VALUES ('skfs45u9c397qpd92vdto69tm5', 0, '1774900649'1 × DELETE
FROM `rtj1k_session`