The 20-year-old spent time in the Championship on loan at Brentford last year, scoring four goals in his 11 appearances.
He had been with the Toffees since he was five but made just one substitute appearance for the first team.
"I'm absolutely buzzing to have officially signed and I can't wait to get started," he told the club website.
"I can't thank Everton enough for what they did for me, but I think it's time to start a new chapter in my life."
Long, who has the option of an extra year in his contract, becomes the Clarets' third signing this summer after full-back Matthew Lowton and striker Jelle Vossen.
Find all the latest football transfers on our dedicated page.
Burnley have signed Everton striker Chris Long for an undisclosed fee on a three-year deal.